转自:http://blog.csdn.net/ysysbaobei/article/details/8082508
工程目录路径不能包含中文名、Microsoft.DTfW.DHL.manifest必须要
http://blog.csdn.net/xinyaping/article/details/6751940
http://blog.csdn.net/hunter8777/article/details/6330531
Visual Leak Detector是一款免费的检查内存泄露的工具。最新的2.2.3版本可以很好的支持VS2008/2010。
点击 http://visualstudiogallery.msdn.microsoft.com/7c40a5d8-dd35-4019-a2af-cb1403f5939c
http://vld.codeplex.com/releases/view/82311这里下载
安装后,
1、在VS中设置Tool->Options 选择Projects and Solutions中的VC++ Directories ->在Include Files和Library Files下(右上角:显示以下内容的目录下),将Visual Leak Detector安装路径中的include(C:\Program Files\Visual Leak Detector\include)和lib(C:\Program Files\Visual Leak Detector\lib\Win32)路径分别添加进去;
2、将安装路径(C:\Program Files\Visual Leak Detector\bin\Win32)下bin里的相应dll(vld_x86.dll、dbghelp.dll、Microsoft.DTfW.DHL.manifest)拷贝至debug目录下。
创建一个简单的工程,其中指针b所指向的内存没有被正确地释放。
- void leak()
- {
- int *b = new int[10];
- for (int i = 0; i < 10; ++i)
- {
- b[i] = i;
- }
- }
- int main()
- {
- leak();
- return 0;
- }
#include <vld.h>,运行就能在output窗口看到效果啦,放在stdafx.h后,其他之前
输出的部分主要分为两块
Call Stack部分:
是泄露内存的调用堆栈,其中显示了泄露资源创建的位置,双击便可以定位到相应的代码部分。
Data部分:
即使泄露部分的内存内容。
------程序关闭,在输出中看到内存有无泄漏信息