C++ 子弹物理因无效引用而崩溃?

C++ 子弹物理因无效引用而崩溃?,c++,pointers,bulletphysics,C++,Pointers,Bulletphysics,我正在用bullet physics制作一个游戏,我有一个平台类,其中包含一个btBoxShape、btDefaultMotionState和一个btRigidBody作为成员。当退出我的游戏时,它崩溃了。我将平台对象存储在std::vector中,我认为这就是问题所在。当我推回更多平台时,向量会在内存中调整大小并移动。这意味着指向刚体的形状和运动状态的任何指针都将无效。我应该如何解决这个问题?我可以想出几个选择 std::array/std::vector具有固定大小(reserve()),如

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

我可以想出几个选择

std::array
/
std::vector
具有固定大小(
reserve()
),如果可能的话


std::vector
您可能应该在这里使用智能指针,但基本上是在
vector
中分配自己并只存储指针。std:deque不会使引用无效。

我不是存储指针的人,Bullet会这样做。它的对象需要指向相关对象的指针。@CarolineBengtsson Oh Isee@CarolineBengtsson我的新答案有更好的帮助吗?