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;
}