Memory malloc()未显示在系统监视器中
我写了一个程序,唯一的目的是分配一定数量的内存,这样我就可以看到它对Ubuntu 12.04系统监视器的影响。 这是我写的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(
#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;