0

Robotクラスの2D配列へのポインタがあります

Robot ***rob; 

そして、以下はコンストラクターの私のコードです。コンストラクターは正常に動作しますが、このポインターを削除するデストラクタを作成しようとしていますが、プログラムがクラッシュし続けます。

私の質問は、ロボットの2D配列へのポインタを削除するにはどうすればよいですか?

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;
        }
    }
}
4

1 に答える 1

1
// 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;

于 2012-11-23T16:50:48.487 に答える