创建2d
有机体类指针数组:
try{
world = new Organism**[worldSizeX];
for (int x = 0; x < worldSizeX; x++){
world[x] = new Organism*[worldSizeY];
// INITATES world ARRAY
for (int y = 0; y < worldSizeY; y++){
world[x][y] = new Organism;
}
// !INITATES world ARRAY
}
}
catch (std::bad_alloc){
std::cout << "Not enough memory for World size" << worldSizeX << "x" << worldSizeY << std::endl;
deleteWorld(); // DO I NEED THIS?
init((int)worldSizeX/2, (int)worldSizeY/2, ants, beetles);
return;
}
如果我bad_alloc
想用较小的 int 值调用 init 。我必须使delete
阵列失败还是可以将其运行一遍?如果是,那么我该如何删除它,我不能循环遍历整个数组应用程序,只是崩溃。