我的程序分段在malloc期间出错。
该故障实际上发生在Bullet Physics库内部,更具体地说是其对齐的分配器例程。但是,我不知道Bullet在这里有什么错。
当'malloc'分段错误出现时,这意味着什么?这是否应该发生?
代码(要复制的最小测试程序):
#include <iostream>
#include "btBulletDynamicsCommon.h"
int main()
{
std::cout << "Hello World!" << std::endl;
btDefaultCollisionConfiguration* cc = new btDefaultCollisionConfiguration();
btCollisionDispatcher* cd = new btCollisionDispatcher(cc);
btBroadphaseInterface* bi = new btDbvtBroadphase();
btSequentialImpulseConstraintSolver* cs = new btSequentialImpulseConstraintSolver;
btDiscreteDynamicsWorld* dynamicsWorld = new btDiscreteDynamicsWorld(cd, bi, cs, cc);
std::cout << "Bye World!" << std::endl;
delete dynamicsWorld;
delete cs;
delete bi;
delete cd;
delete cc;
return 0;
}
如您所见,malloc段中的“ ntdll.dll”子例程。错误。
我在Windows 7上使用TDM-GCC-64构建了Bullet库和此程序。
是否会发生这种情况,或者我的“ ntdll.dll”确实损坏了?
这实际上是子弹的错吗?
是否有其他人遇到过malloc段。有问题吗?