我不得不完全重写这个问题,因为我现在发现了更多关于它的信息。
背景:
我的程序正在directx11 下绘制一些3d 对象。我有一个类,其中包含绘制所需 3d 对象所需的数据、指针和函数。一切运作良好。我可以创建许多不同的 3d 对象并将它们绘制到任何我想要的地方。伟大的!
然后我需要将它们放入容器和向量中,这样我就不必手动创建每个对象,这就是麻烦开始的地方;它会在 5 次左右崩溃 1 次。
Unhandled exception at 0x00C308C1 in SpritesNTextN3D.exe: 0xC0000005: Access violation reading location 0xFFFFFFFF.
使用矢量和地图时它崩溃了。我继续这行查询并尝试使用指针和新的:
ThreeD_Cube* threed_cube_p;
threed_cube_p = new ThreeD_Cube;
当我运行它的绘图功能时,这也导致它崩溃。
threed_cube_p->draw(threeD, camera, d3dContext_mp);
但是,如果创建为标准对象:
ThreeD_Cube threed_cube_;
绘图功能永远不会崩溃。
threed_cube_-.draw(threeD, camera, d3dContext_mp);
同样,创建指向 threed_cube_ 的指针按预期工作。
问题:
默认构造函数没有的新功能。有什么我应该看的东西来解决这个问题吗?