首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux 开发程序的内存释放有关问题

2013-08-26 
linux 开发程序的内存释放问题首先我是通过top查看我的程序的内存使用情况1.我使用第一种方法申请空间后再

linux 开发程序的内存释放问题
首先我是通过top查看我的程序的内存使用情况

1.我使用第一种方法申请空间后再delete释放,是可以恢复到刚刚进入程序时使用的内存大小的
2.但是如果使用第二种方法,申请再delete释放后,内存使用没有降下来
3.我如果把char data[9];  改为char data[1024];  第二种方法的delete就可以成功的释放内存

以上现象是为什么呢?内存碎片吗?我的需求只能是9个字节,如何才能可以释放掉使用内存呢?

#include <stdio.h>

#define  MEMLEN 1024*1024
class hugedata {
public:
    hugedata(){}
    char data[9];      //此处如果1024  下面第二种方法delete就可以释放掉内存
};


int main ()
{
//第一种方法
    getchar();
    hugedata *d = new hugedata[MEMLEN];
    getchar();
    delete[] d;
    getchar();

/*  //第二种方法
    getchar();
    hugedata *d[MEMLEN];
    for(long i = 0; i < MEMLEN; i++)
    {
        d[i] = new hugedata();
    }
    getchar();
    for(long i = 0; i < MEMLEN; i++)
    {
        delete d[i];
    }
    getchar();
*/
return 0;
} Linux 内存
[解决办法]
应用层内存池是解决此问题的方法。

热点排行