C++中 Debug Assertion Failed! 代码调试

来源:互联网 发布:微信数据精灵授权码 编辑:程序博客网 时间:2024/05/16 07:44

 错误提示:

Debug   Assertion   Failed!     
  Program:   D:/wyuStud/debug/wyuStud.exe   
  File:   afx.inl          
  Line:157   


 

调试方法:

 

首先如果你用的是vc6的话:
1。按F5运行你的程序
2。在出错时,选择“重试”
3。按ALT+7调出“调用栈”窗口
4。双击从上往下的最近一个自己定义的函数,系统会自动把该函数所在的文件显示出来,此时程序就暂停在光标处。一般来说错误就出在这附近。你可以通过查看变量的值来确认。


 

 

具体事例:

 

按照上面的做法:弹出一个对话框:

 

点击函数:(注意一定是自己写的函数,不要去修改库函数)


 

 

错误原因:

     目前只发现:使用了野指针。


 

跟踪代码并调试:(通过按照调试方法中描述的,点击自己编写的函数,然后逐个函数查找错误。我就是这么做的,然后发现了错误所在)

      发现在函数U_Ptr::处有疑点;U_Ptr的定义如下:

 

其中的析构函数中有条指令:delete ip;出错,原因如注意所示,因为ip为静态分配内存,当程序执行完毕后,其所分配的内存自动收回,则ip就成为了一个野指针,若使用delete去删除,则错误。所以正确的做法就是将delete ip删除。

 

 

 

 

原创粉丝点击