VC内存泄漏的解决方法
来源:互联网 发布:7日留存率算法 编辑:程序博客网 时间:2024/05/22 03:52
程序退出后都出现内存泄漏:
Detected memory leaks!
Dumping objects ->
{98500} normal block at 0x05785AD0, 152 bytes long.
Data: << N N x 7 > 3C AC 4E 10 00 00 00 00 BC A4 4E 10 78 B6 37 00
Object dump complete.
而且每次退出都是一样的.泄漏的内存块都是98500.
解决方法:
1. 在程序开始启动的地方(足够前的地方,只要在泄漏的内存分配的前面,比如在一个大的工程中的app类的构造函数中)使用代码:
_CrtSetBreakAlloc(98500); //98500为上面内存泄漏的块号.
2. 然后debug运行,程序自动断点在"内存块98500"分配的位置:
if (_crtBreakAlloc != -1L && lRequest == _crtBreakAlloc)
_CrtDbgBreak();
3 .我们已经找到了泄漏的那块内存分配的底层操作的地方了(好拗口!).
这个时候我们利用 "调试" –> "退出" ,快捷键为:"Shift + F11" .
跳出当前函数..然后一直往"上"跳,边跳边查看调用栈.直到看到了自己写的代码,例如我的
std::ifstream* origStream = new std::ifstream();
4 .这个时候我已经可以判断 origStream 分配了内存,但是没有合理释放.处理后再次运行就没有出现内存泄漏了.
5.最后,记得把_CrtSetBreakAlloc(98500); 这句话删除掉.
- VC内存泄漏的解决方法
- 如何检测vc的内存泄漏
- VC/MFC 内存泄漏的个人总结
- vc 中内存泄漏的检查办法
- 使用VC的DEBUG检查内存泄漏
- VC下内存泄漏的检测方法
- VC下显示内存泄漏的方法
- VC的一个错误内存泄漏报告
- 如何检测vc的内存泄漏
- VC++设置检测内存泄漏的方法
- vc++ 程序内存泄漏的排查
- VC++内存泄漏的检测与定位
- VC++内存泄漏的检测与定位
- VC定位内存泄漏的方法
- VC++检测内存泄漏的集中方法
- Symbian 使用 fopen() 内存泄漏的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- C语言中strtol函数详解
- Sql Server执行动态SQL
- 内存对齐
- 裂痕的情侣表
- Java中HashMap遍历的两种方式
- VC内存泄漏的解决方法
- 十个JDBC的最佳实践
- Spring框架
- Nginx、MySQL 和 PHP-FPM 优化
- sql server 2005在windows7-64bit下安装经验总结
- C# BackgroundWorker同窗体进度条使用
- 微软技术系列(WebForm)
- 【php】PHP Warning: date(): It is not safe to rely on the system's timezone settings.
- IMAGE_DOS_HEADER STRUCT