0

我正在制作一个带有子弹物理的游戏,其中我有一个 Platform 类,其中包含一个 btBoxShape、btDefaultMotionState 和一个 btRigidBody 作为成员。退出我的游戏时它崩溃了。我将 Platform 对象存储在 std::vector 中,我认为这就是问题所在。当我推回更多平台时,向量会调整大小并在内存中移动。这意味着任何指向刚体的形状和运动状态的指针都是无效的。我应该如何解决这个问题?

4

2 回答 2

2

std:deque 不会使引用无效。

于 2013-08-17T15:10:32.317 回答
0

我能想到几个选择。

std::array/如果可能,std::vector使用固定大小( reserve())

std::vector<Platform*>您可能应该在这里使用智能指针,但基本上分配自己并将指针存储在vector.

于 2013-08-17T14:23:35.357 回答