創建2d
陣列生物類指針:如果我得到std :: bad_alloc該怎麼辦?
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值。我是否需要delete
失敗的陣列,或者我可以運行它嗎?如果是的話,那麼我怎麼能刪除它,我無法循環整個數組應用程序只是崩潰。
無論如何,new []或new []都需要'delete'或'delete []'來擺脫它。 –