sto sperimentando con un semplice programma C che mantiene la memoria allocazione:manca [mucchio] sezione/proc/PID/mappe
for (i = 0; i < 10000; i ++)
{
array[i] = malloc(1024*1024);
if (array[i] == NULL)
{
break;
}
printf("Sleeping...%d\n", i);
sleep(60);
}
codice completo incollato qui: http://tny.cz/2d9cb3df
Tuttavia, quando ho cat /proc/pid/maps
, non ho la sezione [heap]
. Perché?
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]
Il compi si deduce che il ciclo for non fa nulla (i. e. no-op) e lo ottimizza? –
un'ipotesi educata? –
@ H2CO3, l'ho modificato per stampare l'indirizzo assegnato ed è sempre lo stesso. – lang2