我用一個簡單的C程序,保持分配內存試驗:失蹤[堆]在/ proc/PID/maps部分
for (i = 0; i < 10000; i ++)
{
array[i] = malloc(1024*1024);
if (array[i] == NULL)
{
break;
}
printf("Sleeping...%d\n", i);
sleep(60);
}
的完整代碼粘貼在這裏:http://tny.cz/2d9cb3df
然而,當我cat /proc/pid/maps
,我沒有得到[heap]
部分。爲什麼?
08048000-08049000 r-xp 00000000 08:11 17 /data/a.out
08049000-0804a000 r--p 00000000 08:11 17 /data/a.out
0804a000-0804b000 rw-p 00001000 08:11 17 /data/a.out
0804b000-0805e000 rw-p 00000000 00:00 0
b74c6000-b75c8000 rw-p 00000000 00:00 0
b75c8000-b7775000 r-xp 00000000 08:01 3539272 /lib/i386-linux-gnu/libc-2.17.so
b7775000-b7777000 r--p 001ad000 08:01 3539272 /lib/i386-linux-gnu/libc-2.17.so
b7777000-b7778000 rw-p 001af000 08:01 3539272 /lib/i386-linux-gnu/libc-2.17.so
b7778000-b777b000 rw-p 00000000 00:00 0
b7797000-b779a000 rw-p 00000000 00:00 0
b779a000-b779b000 r-xp 00000000 00:00 0 [vdso]
b779b000-b77bb000 r-xp 00000000 08:01 3539289 /lib/i386-linux-gnu/ld-2.17.so
b77bb000-b77bc000 r--p 0001f000 08:01 3539289 /lib/i386-linux-gnu/ld-2.17.so
b77bc000-b77bd000 rw-p 00020000 08:01 3539289 /lib/i386-linux-gnu/ld-2.17.so
bff21000-bff42000 rw-p 00000000 00:00 0 [stack]
的組合物1 ler推斷for循環沒有做任何事情(即,即沒有操作)並優化它? – 2013-07-22 08:04:33
受過教育的猜測? –
@ H2CO3,我改變它打印出分配的地址,它仍然是一樣的。 – lang2