我在测试程序中犯了许多错误!!!
调试src:http://www.cppblog.com/Files/mymsdn/cvector-windows-has-triggered-a-breakpoint-in-cvector.zip
正确版本:http://www.cppblog.com/Files/mymsdn/cvector-svn-version-10.zip
我试图写一个向量结构的C语言版本。
如果我尝试运行(在Microsoft Visual Studio 2008中,默认快捷键是CTRL+F5)我的代码。它可以作为正确的逻辑执行以输出正确的结果。
但是,如果我尝试在调试模式下运行它(在Microsoft Visual Studio 2008中,默认的快捷方式是F5)。它将导致一个问题:(它来自输出窗口,并且还有一个警报框架来报告它)
HEAP[cvector.exe]:HEAP:释放后在393190处修改的空闲堆块393168
Windows已在cvector.exe中触发断点。
这可能是由于堆损坏,这表明cvector.exe或它加载的任何dll中存在错误。
这也可能是由于用户在cvector.exe有焦点时按F12。
输出窗口可能包含更多诊断信息。
(来源:cppblog.com)
最佳答案
这个错误意味着你已经写入了一个你实际上并不“拥有”的内存地址——例如,你在内存被释放后,或者在你实际分配给new
或malloc
的区域之外,或者通过一个完全错误的指针写入内存。
关于c - 这可能是由于堆损坏导致的,这表明cvector.exe或其已加载的任何DLL中存在错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3226937/