Memory malloc()未显示在系统监视器中

Memory malloc()未显示在系统监视器中,memory,malloc,monitoring,allocation,Memory,Malloc,Monitoring,Allocation,我写了一个程序,唯一的目的是分配一定数量的内存,这样我就可以看到它对Ubuntu 12.04系统监视器的影响。 这是我写的 #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char **argv) { if(argc<2) exit(-1); int *mem=0; int kB = 1024*atoi(

我写了一个程序,唯一的目的是分配一定数量的内存,这样我就可以看到它对Ubuntu 12.04系统监视器的影响。 这是我写的

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv)
{
    if(argc<2)
        exit(-1);

    int *mem=0;
    int kB = 1024*atoi(argv[1]);

    mem = malloc(kB);

    if(mem==NULL)
        exit(-2);

    sleep(3);

    free(mem);
    exit(0);
}
但这对系统监视器中的图形也没有影响


谢谢。

您是否使用优化进行编译?请尝试添加
printf(“%d\n”,mem[982])在睡眠之后。@KlasLindbäck,我没有使用任何优化。我只是在用'gcc-ansi-Wall'。另外,在sleep()之后使用printf访问内存位置不会改变结果……好的,那么您的问题不是由优化器删除不必要的代码引起的。
int i;
for(i=0; i<kB/sizeof(int); i++)
    mem[i]=i;