【转】_CrtSetBreakAlloc 内存泄漏

时间:2023-03-08 21:48:59

声明:本内容转载自 https://my.oschina.net/gp8wLHNUeKd2C/blog/110707

在使用VS开发过程中,(今日)遇到内存泄漏的情况。具体表现为:

在输出窗口中,显示:

【转】_CrtSetBreakAlloc 内存泄漏

项目代码翻了个遍都没看出问题在哪。此时,可通过 _CrtSetBreakAlloc(); 接口,进行简单的内存泄漏检查。

具体使用方法:在 main 函数中,直接第一句前加上 _CrtSetBreakAlloc(12866); 然后以 debug 模式下运行。此时,vs会直接帮忙定位到具体发生内存泄漏的位置(注意:是以中断的形式定位的)。


下面是转载博客的部分需要注意的地方的原文内容(方便查阅,故copy放于此):

或者 在头文件添加如下代码

// 在入口函数cpp中添加以下定义和头文件
#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h> 如果用VisualLeakDetector无法找到内存溢出代码对应的位置的时候,要首先查看如下操作 .当前程序路径是否包含中文,VisualLeakDetector对中文不能支持 .打算查看的DLL是否包含了"#include <vld.h>",每个打算查看的DLL都要在原DLL的代码中添加"#include <vld.h>" .不能在当前程序路径中包含VisualLeakDetector安装路径下的任何文件。