在析构函数中删除指向2d数组的指针以崩溃结束

时间:2018-05-22 14:32:29

标签: c++ pointers multidimensional-array destructor delete-operator

我在我创建的类中遇到了析构函数问题。

我的构造函数如下所示:

chess_b = new int*[N];
for (int i = 1; i <= N; i++)
     chess_b[i] = new int[N]; 

和这样的析构函数:

for (int i = 1; i <= N; i++)
    delete[] chess_b[i];

delete[] chess_b;

有些时候eeerything工作得很好,但它崩溃很多,当我尝试调试时指向这行代码:

delete[] chess_b[i];

我尝试过使用此功能&gt;但它也没有用。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

你的for循环应该是0到N-1,而不是1到N

答案 1 :(得分:0)

C ++中的索引必须从0N-1

for (int i = 0; i < N; i++)