【发布时间】:2018-11-01 09:04:25
【问题描述】:
我创建的类中的析构函数有问题。
我的构造函数如下所示:
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];
我试过用这个-> 但也没用。
提前感谢您的帮助。
【问题讨论】:
-
如果你有析构函数,你关注the rules of three or five吗?虽然我建议你开始使用
std::vector并遵循零规则。 -
C++ 使用基于
0的索引,而不是来自1。所以有效的索引是[0]到[N-1]循环中的最后一次迭代超出范围 -
或者你可能需要a few good books,或者重读你的课堂笔记。
标签: c++ pointers multidimensional-array destructor delete-operator