指向指针数组的指针!怎么删?

时间:2013-09-10 05:16:44

标签: c++ arrays pointers

所以我有一个指向指针数组的指针!

    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;

谢谢!

2 个答案:

答案 0 :(得分:6)

没问题。这是正确的! 您按照分配的相反顺序解除分配! 我甚至认为还有另一种方法可以做到这一点。

答案 1 :(得分:2)

是和否。 ,如果你必须像你一样手动分配内存,这是手动释放内存的正确方法。

但是没有,你应该避免手动分配和释放内存。如果你坚持使用C ++ 03而没有任何智能指针,你应该使用向量向量。在C ++ 11中,您有更多选项,即智能指针和std::array,后者只有在编译时知道内部或外部维度的大小或两者都知道。在C ++ 14中,std::dynarray也可以成为一种选择。