簡體   English   中英

指向指針數組的指針!怎么刪?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM