首页 > 代码库 > VS2005 解决Detected memory leaks!
VS2005 解决Detected memory leaks!
VS2005自带内存泄漏检测
若程序退出后出现内存泄漏:
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 .查看调用堆栈,找到泄漏位置,释放资源
5.最后,记得把_CrtSetBreakAlloc(98500); 这句话注释
若程序退出后出现内存泄漏:
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 .查看调用堆栈,找到泄漏位置,释放资源
5.最后,记得把_CrtSetBreakAlloc(98500); 这句话注释
VS2005 解决Detected memory leaks!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。