ciao a tutti
ho creo e distruggo una matrice nel seguente modo
perché l'istruzione free(m[i]); della funzione distrugiMatrice mi fa spuntare un backtrace interminabile, dicendomi qualcosa come "double free o corruption"?codice:void ** creaMatrice(int n,int size) { int i; //alloco n celle di ognuna di 'size0 byte void ** m = (void**)calloc(n,size); //per ogni elemento, alloco un vettore sempre di n locazioni for(i=0;i<n;i++) { m[i] = calloc(n,sizeof(byte)); } return m; } void distrugiMatrice(void **m,int n) { int i; for(i=0;i<n;i++) { free(m[i]); } free(m); }
dove sbaglio?
ps: uso linux e gcc

Rispondi quotando