我只需要确保我有足够的内存可用于二维数组映射。因此,我认为我必须尝试抓住错误:在地图的每一行中分配或者可能没有投掷会更优雅。但我无法接受它。任何帮助将不胜感激......
我读过一些关于写一些类似文章的文章:
map[i] = new int [columns];
if (map[i] == NULL)
cout << “No enough memory”;
我不喜欢这个解决方案而且我已经读过那个不太可靠的解决方案。 fillmaze是一个在迷宫构造函数内部调用的函数。
void Maze::setupMaze(int r, int c, int l){
rows = r;
columns = c;
level = l;
fillMaze();
addBorders();
centerWalls();
getaway();
addWalls();
}
void Maze::fillMaze(){
map = new int* [rows];
for (int i = 0; i < rows; i++) {
map[i] = new int[columns];
}
//Inicializamos toda la tabla
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
map[i][j] = PASSAGE;
}
}
}
delete []
地图还不够吗?我正在做类的析构函数:
Maze::~Maze(void)
{
for (int i = 0; i < rows; ++i)
delete[] map[i];
delete[] map;
}