我這個做一個3D動態數組使用此代碼刪除3D動態數組C++
//layer = 2
//levelSize.x = 100
//levelSize.y = 100
level_array = new int**[layer];
for(int i = 0; i < layer; ++i)
{
level_array[i] = new int*[(int)levelSize.x];
for(int j = 0; j < levelSize.x; ++j)
level_array[i][j] = new int[(int)levelSize.y];
}
但是當我想刪除它,程序崩潰
for(int i = 0; i != levelSize.x; ++i)
{
for(int j = 0; j != levelSize.y; ++j)
{
delete[] level_array[i][j];
}
delete[] level_array[i];
}
delete[] level_array;
我不知道在哪裏在刪除數組的代碼中是錯誤的。
請幫我檢查代碼,感謝
我已經有一段時間沒有進行C++,但不應該'delete [] level_array'刪除數組? – 2013-05-05 03:16:14
@zachlatta,不是遞歸的。 – chris 2013-05-05 03:16:29
我首先有一個3D數組的問題,但是使用'std :: vector'或者類似的方法(最好用一維數組包裝它的'Matrix3D'類),你不需要刪除任何東西。 – chris 2013-05-05 03:17:34