小编Suk*_*oon的帖子

为什么free()函数不会将内存返回给操作系统?

当我在Linux上使用顶级终端程序时,我看不到免费的结果.

我的期望是:

  1. 免费地图和清单.

  2. 我可以在顶部看到的内存使用情况(Linux函数)或者/proc/meminfo 比过去更小.

  3. 睡觉就是开始.

  4. 程序退出.

但是,当程序结束时,内存的使用量会变小.

你会解释自由功能的逻辑吗?

以下是我的代码.

for(mapIter = bufMap->begin(); mapIter != bufMap -> end();mapIter++)
{
    list<buff> *buffList = mapIter->second;
    list<buff>::iterator listIter;
    for(listIter = buffList->begin(); listIter != buffList->end();listIter++)
    {
        free(listIter->argu1);
        free(listIter->argu2);
        free(listIter->argu3);
    }
    delete buffList;
}
delete bufMap;

printf("Free Complete!\n");

sleep(10);
printf("endend\n");
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ linux redhat

0
推荐指数
1
解决办法
336
查看次数

标签 统计

c++ ×1

linux ×1

redhat ×1