1

我在测试程序中犯了很多错误!!!

调试源: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:释放堆块 393168 在释放后修改为 393190 Windows 已触发 cvector.exe 中的断点。

这可能是由于堆损坏,这表明 cvector.exe 或其已加载的任何 DLL 中存在错误。

这也可能是由于用户在 cvector.exe 具有焦点时按 F12。

输出窗口可能有更多诊断信息。

错误
(来源:cppblog.com

4

2 回答 2

4

这个错误意味着你写入了一个你实际上并不“拥有”的内存地址——例如,你在内存被释放之后写入了内存,或者在你实际分配的区域之外使用newor malloc,或者通过一个简单的指针错误的。

于 2011-07-26T22:57:23.117 回答
1

检查您的调试设置。关闭“非托管代码调试”和“SQL Server 调试”。

当我使用 Oracle 组件获得此功能时,这对我有用。如果我继续点击继续,则没有中断错误,程序继续运行。关闭这些调试选项让它继续运行,程序现在可以工作了。

于 2011-07-26T22:55:05.010 回答