自己编写的VC程序,编译调试通过,运行良好,然后关闭运行界面,就弹出一个“已经触发一个中断”的提示,然后断点就停在了下面这个中断处。

_CRTIMP void _cdecl _CrtDbgBreak(
void
)
{
__debugbreak();
}
 
答案::::::::::::::::::::::::::::::::::::::::::::
 
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析构时会自动释放,不会出什么问题。
 
如果还在调试状态,找到调用栈窗口,可以具体找到函数,就可以定位出错的代码了。
首先,如果调试时错误在系统,而不在你自己的程序的,多半实际是你自己的程序出错。 _CrtDbgBreak
1)找指针 2)找你不熟悉的那些东西,查看是不是用错了,例如CArray ;查看MSDN,知道这些东西的正确使用方法,问题就迎刃而解了。 其他类似问题,先看是断言(ASSERT) 还是Debug专用函数的问题;
断言意思是说,这个程序运行到这点,必有这个结论,没有就是用错了,不应该调用这段程序。
Debug专用函数的,是在问题不明显时,提供的查找问题专用的函数;
这个熟悉一下这个函数,是用来做什么的,就很容易找到问题了!!

最新文章

  1. JVM之Parallel Scavenge收集器
  2. AngularJS中的模板安全与作用域绑定
  3. UNION和UNION ALL
  4. Android 无标题、全屏设置
  5. TSql Output 用法
  6. salt基本原理
  7. [安卓]Android窗口、视图、布局
  8. UTF-8 GBK GB2312 之间的区别和关系
  9. C++:异常的处理
  10. JSONP实例
  11. ReactiveCocoa 简单使用
  12. pfsense下的流量管理(转)
  13. Fast Paxos
  14. 项目总结22:Java UDP Socket数据的发送和接收
  15. Flask-Mail
  16. hibernate 解决诡异的mysql存入中文乱码
  17. 2018SDIBT_国庆个人第七场
  18. myeclipse2017 安装包及破解插件的下载
  19. tkinter的GUI设计:界面与逻辑分离(一)-- 初次见面
  20. Java并发编程原理与实战十四:Lock接口的认识和使用

热门文章

  1. Leetcode139. Word Break单词拆分
  2. ubuntu 安装samba共享文件夹
  3. Laravel 指定日志生成目录
  4. 模板:exlucas
  5. HZOI20190810 T1
  6. Django项目:CRM(客户关系管理系统)--62--52PerfectCRM实现CRM客户报名流程学生合同审核
  7. 深入浅出 Java Concurrency (12): 锁机制 part 7 信号量(Semaphore)[转]
  8. HttpComponents了解
  9. flex 手册摘要
  10. 字符串匹配算法之kmp算法