PDA

View Full Version : [C] deallocazione della memoria con free


flosfloris
28-01-2008, 10:53
ciao ragazzi ho bisogno di una mano

ho allocato dinamicamente 2 array e una matrice con calloc...

ora alla fine del mio algoritmo devo deallocare memoria..
per gli array basta scrivere free(array);

mentre per la matrice non so come fare avendola dichiarata come doppio puntatore...

spero in un vostro aiuto....
ciauu

AnonimoVeneziano
28-01-2008, 11:03
Prova a vedere come hai allocato la matrice.

immagino l'avrai allocata tipo

double** matrice = malloc(sizeof(double*)*numero);
for (count = 0; count < numero; count++) {
matrice[count] = malloc(sizeof(double)*numero);
}


Allo stesso modo devi deallocarla con free. (ma al contrario)

Prima deallochi tutti gli array corrispondenti alle righe della matrice e poi deallochi l'array di puntatori che č stato allocato all'inizio pressapoco cosė :


for (count = 0; count < numero; count++) {
free(matrice[count]);
}

free(matrice);


Ciao

andbin
28-01-2008, 11:05
mentre per la matrice non so come fare avendola dichiarata come doppio puntatore...Immagino quindi che prima di tutto hai allocato l'array che tiene i puntatori alle righe, poi, per ogni riga hai allocato della memoria per le colonne.
Bene, dealloca tutte le righe, poi dealloca l'array dei puntatori alle righe.