[英]pointer to array of pointers! how to delete?
所以我有一個指向指針數組的指針!
int **matrixPtr;
matrixPtr = new int*[5];
for(i=0; i<5; ++i){
matrixPtr[i]= new int[5];
}
我想知道這是否是釋放記憶的正確方法!
for(i=0; i<5; ++i){
delete [] matrixPtr[i];
}
delete [] matrixPtr;
謝謝!
沒問題。 這是正確的! 您按照分配的相反順序解除分配! 我甚至認為還有另一種方法可以做到這一點。
是的,不是。 是的 ,如果你必須像你一樣手動分配它,這是手動釋放內存的正確方法。
但不 ,你應該避免手動分配和釋放內存。 如果你堅持使用C ++ 03而沒有任何智能指針,你應該使用向量向量。 在C ++ 11中,您有更多選項,即智能指針和std::array
,后者只有在編譯時知道內部或外部維度的大小或兩者都知道。 在C ++ 14中, std::dynarray
也可以成為一個選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.