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),所以我在很多地址泄漏内存?

在此处输入图像描述

4

1 回答 1

0

包含 windows.h “我假设你在 windows 盒子上运行它” *与 linux 相比,windows 中的内存管理要聪明得多。

尝试在 linux 中运行相同的程序并重新绘制图形以查看差异

于 2015-04-30T12:55:25.950 回答