将指针传递给两个不同的地方,结果不同?

时间:2013-12-05 21:12:57

标签: c++ pointers segmentation-fault

在这段代码中,我想创建一个Enemy对象,并将它的指针推送到两个不同的位置:作为我所有可绘制对象树中的子项(Enemy是可绘制的) ,以及一个名为Enemy*的{​​{1}}列表,可以跟踪所有活动的mEnemies个对象,而无需遍历我的图表。

Enemy

当我的代码尝试绘制可绘制节点的图形时,它会以上述函数中指定的正确位置成功。但是,当我为void World::spawnEnemy(float x, float y, EnemyType::ID type, IState::ID state) { Enemy* enemy(new Enemy(mTextures, type, state)); enemy->setPosition(x, y); mEnemies.push_back( enemy ); mSceneLayers[Air]->attachChild( enemy ); } 创建迭代器auto itr并尝试访问mEnemies时,调试器会说它是(**itr),具有完全无意义的值,我得到了我试图访问时出现seg错误。

对于referance,Enemy代码如下所示:

attachChild

其他相关代码在我的另一个问题中:Cannot figure out Seg Fault, lots of detail provided

0 个答案:

没有答案