我在 C++ 中运行一个迭代过程,在第一次迭代按预期完成后,从第二个开始出现以下错误:
00000000212005D0 处的堆块在 0000000021200674 处修改,超过 94 Windows 的请求大小已触发 myProject.exe 中的断点。
这可能是由于堆损坏,这表明 myProject.exe 或其已加载的任何 DLL 中存在错误。
这也可能是由于用户在 myProject.exe 获得焦点时按 F12。
输出窗口可能有更多诊断信息。
在显示此错误时,visual-c++ 打开 dbgheap.c,突出显示给出的部分:
extern "C" _CRTIMP int __cdecl _CrtIsValidHeapPointer(
const void * pUserData
)
{
if (!pUserData)
return FALSE;
if (!_CrtIsValidPointer(pHdr(pUserData), sizeof(_CrtMemBlockHeader), FALSE))
return FALSE;
return HeapValidate( _crtheap, 0, pHdr(pUserData) );
}
这个错误的原因可能是什么?