VC程序异常中断的原因
来源:互联网 发布:windows phone 还原 编辑:程序博客网 时间:2024/06/02 02:59
http://zhidao.baidu.com/link?url=g4qltTocbcJ-1aIMcyIgh49Y2ZkCq1da0e7gtAgmCfFrS19vI8AizF4XwFvfaZ5rDc_ST_xsboQTfWnFTdTlMa
自己编写的VC程序,编译调试通过,运行良好,然后关闭运行界面,就弹出一个“已经触发一个中断”的提示,然后断点就停在了下面这个中断处。_CRTIMP void _cdecl _CrtDbgBreak( void ){ __debugbreak();}求高手指点这可能是什么原因。
2013-06-17 10:08 提问者采纳
delete 或者free 出错释放了不该释放的内存或者,释放的方法不对1)静态变量,全局变量,局部变量的地址,不是动态分配的,如果有指向这些变量的指针,任何释放都是错误的。2)new 分配的指针,用 delete 释放 new[] 分配的指针 ,用 delete[] 释放 malloc 分配的指针 用 free 释放3) 全局变量析构出现异常,或者最后析构的变量出现异常。
追问:
可能是CArray对象类元素释放的不对,CArray <float,float&> dx;这种的怎么释放呀?谢谢
追答:
这种不用管他,他自己会释放。
不放心或者内存紧张的话,调用一下 RemoveAll( ),就可以了;
1
2
3
CArray <
float
,
float
&> dx;
dx.Add(10.0);
// Element 0dx.Add(40.0); // Element 1
dx.RemoveAll( );
//主动释放CArray分配的内存,不然dx析构时会自动释放,不会出什么问题。
追问:
那,我能问一下,遇到这种问题我应该怎么找问题呀?如果是内存释放问题,我如何确定是什么变量呢?或者如果不是内存泄露问题,应该怎么调试呢?谢谢
追答:
如果还在调试状态,找到调用栈窗口,可以具体找到函数,就可以定位出错的代码了。首先,如果调试时错误在系统,而不在你自己的程序的,多半实际是你自己的程序出错。_CrtDbgBreak1)找指针2)找你不熟悉的那些东西,查看是不是用错了,例如CArray ;查看MSDN,知道这些东西的正确使用方法,问题就迎刃而解了。其他类似问题,先看是断言(ASSERT) 还是Debug专用函数的问题;断言意思是说,这个程序运行到这点,必有这个结论,没有就是用错了,不应该调用这段程序。Debug专用函数的,是在问题不明显时,提供的查找问题专用的函数;这个熟悉一下这个函数,是用来做什么的,就很容易找到问题了!!
0 0
- VC程序异常中断的原因
- 导致vc程序崩溃的原因
- Qt程序异常终止的原因
- 中断处理程序中不能出现睡眠代码的原因
- vc 修改控件ID出现运行异常的原因
- 异常处理与程序中断
- 中断和异常处理程序的嵌套执行
- 【VC报错】LeaveCriticalSection中断异常
- ARM 的异常中断
- 控制台程序输入CTRL+C后弹出异常的原因
- i2c设置中断的原因?
- VC下发布的Release版程序的异常捕捉
- VC下发布的Release版程序的异常捕捉
- VC下发布的Release版程序的异常捕捉
- VC下发布的Release版程序的异常捕捉
- VC下发布的Release版程序的异常捕捉
- VC下发布的Release版程序的异常捕捉
- VC下发布的Release版程序的异常捕捉
- JAVA中List、Map、Set的区别与选用
- 目标跟踪之LK光流法
- javascript使用小技巧
- CI理念
- js上传图片预览
- VC程序异常中断的原因
- 为何我工作十年,内心仍无比恐慌(腾讯产品总监曹菲)
- Node入门训练【5】【利用http请求抓取网页数据】
- 打开远程桌面的任务管理器
- RecyclerView妙不可言
- 传递UIScrollView的滑动事件到其子视图中
- java.util.ConcurrentModificationException的解决办法
- hibernate.properties
- LAMP进阶之路--熟悉Linux