如果用户退出主窗口,则无限循环中断。我有下面的代码在循环中运行:
unsigned int* renderableShapeIndices = new unsigned int[aNumberCreatedAtRuntime];
// Do something
delete[] renderableShapeIndices;
然后进行几次循环迭代,并在第一次迭代后停止:
1st breakpoint:
A breakpoint instruction (__debugbreak() statement or a similar call) was executed in Main.exe.
2nd breakpoint:
Unhandled exception at 0x00007FF8C3B8C729 (ntdll.dll) in InTimeEngine2D.exe: 0xC0000374: A heap has been corrupted (parameters: 0x00007FF8C3BF7780).
还有其他人经历过类似的问题吗?我不知道这是怎么回事。
另一个有趣的因素是它只发生在调试模式下。在发布模式下不会发生。
问题的答案就在问题的评论区。
显然,如果试图写入超出其边界的数组,它会,但它最终会覆盖代码中其他地方的数据,导致程序的其他部分出现错误,即使这两个部分是不相关的。在我的例子中,它们是完全无关的。