【发布时间】:2011-09-18 22:07:20
【问题描述】:
构造函数
这就是我分配它的方式:
char **board = new char*[width];
for(i = 0; i < width; i++){
board[i] = new char[height];
for(j = 0; j < height; j++)
board[i][j] = 0;
}
this->board = &board;
在类里面是:
char ***board;
析构函数:
现在我想删除它,所以我写了这个(板它的类字段):
for(i = 0; i < width; i++)
delete (*board)[i];
delete (*board);
运行时:
Board* b = new Board(16, 30, 99);
delete b;
我得到一个未处理的异常。为什么?
【问题讨论】:
-
进入析构函数时捕获到未处理的异常
-
delete都应该是delete[]。 -
你有什么理由不只是使用
std:vector<std::string>(width)?
标签: c++ arrays memory memory-management new-operator