养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

C++Debug Assertion Failed!到底出错在哪里

时间:2024-11-08 06:08:00

在执行程序时,时常遇到一些DebugAssertionFailed!的错误警告溏胃釜阼对话框,对于初学者不知道问题出在哪里,我在这里以一个简单的例子演示给大家。

C++Debug Assertion Failed!到底出错在哪里

工具/原料

VC++6.0或VS2010等C++开发软件都可以

需要了解一些C++的基础知识

方法/步骤

1、下面这幅图是我的程序源代码截图,这是一个很简单的小程序,不妨自己阅读下能否找到错误。

C++Debug Assertion Failed!到底出错在哪里

2、下图是在执行程序时弹出的错误警告对话框,类似的情况很多,我在调试dll插件的时候也时常碰到,后来发现大多是指针引起的错误。

C++Debug Assertion Failed!到底出错在哪里

3、下图荧光笔标记的地方,是锓旆痖颧Distance类析构函数,这里使用了delete,其实是画蛇添足的,因为pDist指针是静态分配的内存,当程序运若益肽屙行完后,其内存自动释放,此时使用delete就是删除一个不存在的指针,从而报错,而实际上delete是与new搭配使用的。

C++Debug Assertion Failed!到底出错在哪里

4、总结来说这种错误存在两种情况,其一就是野指针。

C++Debug Assertion Failed!到底出错在哪里

5、另一种情况就是内存泄露。

C++Debug Assertion Failed!到底出错在哪里

6、在调试的时候一定是在自己编写的函数上找错,不要一只跟着调试顺序在库函数里找错。

© 一点知识