2014-08-31 20 views
2

我写了下面的代码来故意创建内存泄漏。为什么在内存泄漏中只显示三个内存地址?

#include <windows.h> 

int main(int argc, char* argv[]) 
{ 
    while(1) 
    { 
     char *ch1 = new char[10]; 
     char *ch2 = new char[5]; 
     char *ch3 = new char[2]; 
     Sleep(5); 
    } 
    return 0; 
} 

我一直在使用LeakDiag采取的日志,并使用如下LDGrapher图。

现在,我的问题是为什么只有三个地址显示在泄漏图中?我继续在while(1)中创建新的指针,所以我在很多地址泄漏内存?

enter image description here

+0

大概泄漏是由调用网站进行汇总? – 2014-08-31 13:38:25

+0

@KerrekSB对不起,我不明白。 – 2014-08-31 13:39:42

+4

代码中有3个地方会泄漏内存。你看到那3个地方。他们是*代码*地址,而不是数据地址。由于/ ZI编译选项,它们有很大的不同。 – 2014-08-31 13:54:56

回答

0

WINDOWS.H列入“我想üR于Windows中运行此” *相比的Linux在Windows内存managament是非常聪明的。

尝试在Linux中运行相同的程序,并重新绘制图形看型差分