C++ 在析构函数中删除指向2d数组的指针会导致崩溃

C++ 在析构函数中删除指向2d数组的指针会导致崩溃,c++,pointers,multidimensional-array,destructor,delete-operator,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; 我试过使用这个->但是也没用 提前感谢。 < P> C++中的索引必须是从 0代码>代码> N-1 : for (in

我创建的类中的析构函数有问题

我的构造函数如下所示:

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;
我试过使用这个->但是也没用


提前感谢。

< P> C++中的索引必须是从<代码> 0代码>代码> N-1 :

for (int i = 0; i < N; i++)
for(int i=0;i
您的for循环应该是0到N-1,而不是1到N

如果您有析构函数,是否遵循?虽然我建议您开始使用并遵循零的规则。C++使用<代码> 0代码>基于索引,而不是从<代码> 1 < /> >。因此,有效的索引是
[0]
[N-1]
循环中的最后一次迭代超出了范围,或者可能只是您需要的,或者重新阅读您的课堂笔记。
for (int i = 0; i < N; i++)