我正在尝试创建一个像这样的以空结尾的对象数组
void Game::createCreatures(int numCreatures) {
creatures = new Creature *[numCreatures + 1];
for (int i = 0; i <= numCreatures; i++) {
if(i < numCreatures) {
creatures[i] = new Runner(maze);
} else creatures[i] = NULL;
}
}
然后像这样访问它们
for (Creature *creature = creatures[0]; creature != NULL; creature++) {
creature->travel();
}
我到底做错了什么?当我尝试“旅行”该生物时,我收到了 EXC_BAD_ACCESS。我知道数组的创建有问题,因为如果我尝试使用我的访问 for 循环打印所有生物的地址,它会永远打印。我知道我的指针逻辑有问题,帮助?
生物宣言是这个
Creature **creatures;