ciao a tutti
ho creo e distruggo una matrice nel seguente modo
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);
}
perché l'istruzione free(m[i]); della funzione distrugiMatrice mi fa spuntare un backtrace interminabile, dicendomi qualcosa come "double free o corruption"?
dove sbaglio?
ps: uso linux e gcc