我想動態地創建一個指針數組。從我已閱讀直到現在這可以通過以下方式用C++做指針數組的動態創建
CPoint** data_temp;
data_temp = new CPoint*[an_integer];
我以後要指針添加到這個陣列將被指向的對象。有些東西就是這樣,使用for
循環
CPoint A;
CPoint* data = &A; //I am using just a single value but data will also be an array
*data_temp[i] = data; // where data is pointer address
現在的問題是,如果以釋放內存我刪除指針數組data_temp
將它也刪除原始對象即A
?
delete[] data_temp;
我在問這是因爲我需要在稍後階段的對象。
相關: http:// stackoverflow。com/questions/441831/c-calling-delete-on-the-stack-on-the-stack – olevegard
[刪除指向指針的指針(作爲數組數組)](http://stackoverflow.com/questions/4193982/delete-a-pointer-to-pointer-as-array-of-arrays) – dyp
我是唯一一個讀取OP *將數組*放入的數據嗎?如果您添加的指針如您在這裏展示的那樣,則不需要釋放元素(因爲您從未*分配*它們;它們是自動的)。你確實需要刪除動態分配的指針數組(你是)。如果元素*也是動態分配的內存(即'new'ed),則在釋放指針數組之前需要釋放它們。我*強烈*不鼓勵所有這些,並建議你調查['std :: vector <>'](http://en.cppreference.com/w/cpp/container/vector)的樂趣 – WhozCraig