使用的是visual leak detector 1.0版本,将.h文件拷贝到Visual C++的默认include目录下,将.lib文件拷贝到Visual C++的默认lib目录下。以下是一个网上的测试程序:include <vld.h>
#include <stdlib.h>
#include <stdio.h>
void f()
{
int *p = new int(0x12345678);
printf("p=%08x, ", p);
}
void main()
{
f();
}
以下是本该检测出来的泄露,但我测试的时候并没有检测出来 why?????????????WARNING: Visual Leak Detector detected memory leaks!
---------- Block 57 at 0x003A89C0: 4 bytes ----------
--57号块0x003A89C0地址泄漏了4个字节
Call Stack: --下面是调用堆栈
d:\test\testvldconsole\testvldconsole\main.cpp (7):
f --表示在main.cpp第7行的f()函数
d:\test\testvldconsole\testvldconsole\main.cpp (14):
main –双击以引导至对应代码处
f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c (586):
__tmainCRTStartup
f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c (403):
mainCRTStartup
0x7C816D4F (File and line number not available):
RegisterWaitForInputIdle
Data:--这是泄漏内存的内容,0x12345678
78 56 34 12 xV4..... ........
Visual Leak Detector detected 1 memory leak.
#include <stdlib.h>
#include <stdio.h>
void f()
{
int *p = new int(0x12345678);
printf("p=%08x, ", p);
}
void main()
{
f();
}
以下是本该检测出来的泄露,但我测试的时候并没有检测出来 why?????????????WARNING: Visual Leak Detector detected memory leaks!
---------- Block 57 at 0x003A89C0: 4 bytes ----------
--57号块0x003A89C0地址泄漏了4个字节
Call Stack: --下面是调用堆栈
d:\test\testvldconsole\testvldconsole\main.cpp (7):
f --表示在main.cpp第7行的f()函数
d:\test\testvldconsole\testvldconsole\main.cpp (14):
main –双击以引导至对应代码处
f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c (586):
__tmainCRTStartup
f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c (403):
mainCRTStartup
0x7C816D4F (File and line number not available):
RegisterWaitForInputIdle
Data:--这是泄漏内存的内容,0x12345678
78 56 34 12 xV4..... ........
Visual Leak Detector detected 1 memory leak.
解决方案 »
- 怎样将一百万个浮点型的数据快速的写入到文本文件中?
- 关于调用DLL的问题
- 麻烦用 vc2003 或 vc2005 的朋友帮个忙。 我把和错误相关的代码提取出来了,就几行,帮忙看看
- 如何知道某个网页是已经访问过的?
- 两种方式读文件大小不一样?
- 高分请教一个小问题
- 如何设置系统时间?????????在线等候???
- 如何改变HelloWorld程序中的“HelloWorld”的字体?
- 以前看到消息说有一种新的压缩方法效率比ZIP高数十倍,谁有这方面的线索?
- 如何区别堆和堆栈,他们各自在什么时候使用?
- ADO操作access 统计记录数 为什么老是通不过去
- CreateRemoteThread注入dll呼出Dialog
int *p = new int(0x12345678); 这个表示你new了一个int型变量,并且赋值为0x12345678WARNING: Visual Leak Detector detected memory leaks!
---------- Block 57 at 0x003A89C0: 4 bytes ----------
--57号块0x003A89C0地址泄漏了4个字节
Call Stack: --下面是调用堆栈
d:\test\testvldconsole\testvldconsole\main.cpp (7):
f --表示在main.cpp第7行的f()函数
d:\test\testvldconsole\testvldconsole\main.cpp (14):
main –双击以引导至对应代码处
f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c (586):
__tmainCRTStartup
f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c (403):
mainCRTStartup
0x7C816D4F (File and line number not available):
RegisterWaitForInputIdle
Data:--这是泄漏内存的内容,0x12345678
78 56 34 12 xV4..... ........
Visual Leak Detector detected 1 memory leak. 后面打出的信息表示你泄露了4字节数据,而一个int型数据就是占了4字节
---------- Block 57 at 0x003A89C0: 4 bytes ----------
--57号块0x003A89C0地址泄漏了4个字节
Call Stack: --下面是调用堆栈
d:\test\testvldconsole\testvldconsole\main.cpp (7):
f --表示在main.cpp第7行的f()函数
d:\test\testvldconsole\testvldconsole\main.cpp (14):
main –双击以引导至对应代码处
f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c (586):
__tmainCRTStartup
f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c (403):
mainCRTStartup
0x7C816D4F (File and line number not available):
RegisterWaitForInputIdle
Data:--这是泄漏内存的内容,0x12345678
78 56 34 12 xV4..... ........
Visual Leak Detector detected 1 memory leak.
那是我在网上找到的关于visual leak detector使用的范例。我一步一步学着做,但同样的程序在我这就没有内存泄露的warning。