我有一个指向机器人类的二维数组的指针

Robot ***rob;


下面是我的构造函数代码。构造函数工作正常,但是现在我试图构建一个析构函数以删除此指针,并且它继续使程序崩溃!

我的问题是,如何删除指向机器人二维数组的指针?

RobotsWorld::RobotsWorld(int x , int y)
{
    X=x;Y=y; // returns the limitation of the matrix
    rob = new Robot**[x];
    for(int i = 0; i < x; i++)
    {
        rob[i] = new Robot*[y];

        for(int j = 0; j < y; j++)
        {
            rob[i][j] = NULL;
        }
    }
}

最佳答案

// Code is not tested
for(int i = 0 ; i < x ; ++i)
{
    for(int j = 0 ; j < y ; ++j)
    {
        delete rob[i][j];
    }
    delete[] rob[i];
}
delete[] rob;


顺便说一句,为什么要设置rob[i][j] = NULL;

我认为应该是:rob[i][j] = new double;

关于c++ - 删除指向2D数组的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13532920/

10-11 23:04