我正在制作一个带子弹物理的游戏,我有一个Platform类,它包含一个btBoxShape,btDefaultMotionState和一个btRigidBody作为成员。当退出我的游戏时它会崩溃。我将Platform对象存储在std :: vector中,我认为这是问题所在。当我推回更多平台时,矢量会调整大小并在内存中移动。这意味着无论指向刚体的形状和运动状态的指针都无效。我该怎么解决这个问题?
答案 0 :(得分:2)
std:deque不会使引用无效。
答案 1 :(得分:0)
我可以想到几个选项。
如果可能, std::array
/ std::vector
具有固定大小(reserve()
)
std::vector<Platform*>
你应该在这里使用智能指针,但基本上是自己分配并在vector
中存储指针。