繁体   English   中英

C ++ Visual Studio 2008,delete()操作使程序崩溃

[英]C++ Visual Studio 2008, delete() operation crashes program

几天以来,我一直在Visual Studio 2008中遇到与我的C ++软件有关的问题。 如果我将Visual Studio设置设置为“ Release Win32”模式,则可以正常工作。

但是,如果将其设置为“ Debug Win32”,则在使用delete时会出现崩溃问题。 可以编译,但是在运行时,软件在遇到的第一个“删除”时崩溃。

考虑一下这个Snaphsot:

在此处输入图片说明

如您所见,当软件到达“删除温度”时; 命令执行,它崩溃并显示以下消息:

调试断言失败! 程序...表达式_BLOCK_TYPE_IS_VALID(pHead-> nBlockHouse)

问题是什么? 怎么解决呢?

为什么在“发布”模式下没有任何错误?

谢谢

您只应delete您的newdelete[]您的new[] 没有其他的。 您还试图使用空指针来调用函数。 当您尝试调用无方法时会发生什么? 好吧,那不可能是什么好事。

您有temp = NULL,然后在下一行上调用方法吗? 然后您尝试删除它吗?


除此之外,断言不是“错误”。 断言在调试模式下可以声明您正在断言某个条件(这些条件通常也包括在MFC之类的整个库中),如果断言失败,它将调用代码以通知您有关情况,并让您有机会闯入调试器为了调试问题。

调试器执行“声明”。 这是对代码正确性的另一项检查,例如:“声明指针不为空”。 这样做很好,因为它有助于发现错误。 我同意任何声称调试器发出的消息无助于查找错误源的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM