Ahoj,
chtěl bych si nechat poradit ohledně alokace/uvolňování paměti v C++. Už při takhle jednoduchym programu, kde jen naalokuju paměť pro 2D pole a hned ji zase uvolňuji, mi program těsně před koncem pořád zabírá téměř 2MB paměti. Nevíte proč?
V tomhle případě by to nebyl problém, ale já to potřebuju na hlubokou rekurzi, kde mi tyhle "zbytky" po chvíli vyžerou paměť a ukončí program.
Díky, Michal
#include <stdio.h>
#include <stdlib.h>
int ** M;
int rozmer;
int i, j;
int main(void){
rozmer = 10000;
M = (int **) calloc(rozmer, (sizeof(int *)));
for (i = 0; i < rozmer; i++) {
M[i] = (int *) calloc(rozmer, (sizeof(int)));
}
for ( i = 0; i < rozmer; i++){
free(M[i]);
M[i] = NULL;
}
free(M);
return 0;
}
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu



Nahlásit jako SPAM
IP: 90.181.50.–
Grafoman
God of flame
Stálý člen
Zjistit počet nových příspěvků
































