我有一个无限循环,如果用户退出主窗口,这个循环就会中断。循环中运行着以下代码:
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).还有其他人也经历过类似的问题吗?我不知道发生了什么事。
另一个有趣的因素是它只发生在调试模式中。它不发生在释放模式。
发布于 2022-06-17 05:28:14
问题的答案在问题的评论部分。
显然,如果一个人试图写入超出其界限的数组,它会这样做,但它最终会覆盖代码中其他地方的数据,从而导致程序其他部分的错误,即使程序的这两个部分是无关的。就我而言,他们是完全无关的。
https://stackoverflow.com/questions/72654401
复制相似问题