Vi inserisco parte del codice di un programma....mi crea problemi di memoria ma non riesco a trovare l'errore.Spero che qualcuno possa darmi una mano.
Nel programma alloco dinamicamente memoria per una matrice che inizializzo (matrici quadrate simmetriche).....Dopo di che lo scopo del programma è fare degli unioni, passare quindi, per es, da una matrice 5x5 ad una 4x4 e così via fino ad arrivare ad una matrice1x1. Ovviamente una volta creata la matrice 4x4 è possibile cancellare quella 5x5 per evitare spreco di memoria......Vi inserisco il codice. Per tutti i dubbi contattatemi. Grazie già da ora.
ALLOCAZIONE
codice:
adiacenze=(int **)malloc(numerorighe*sizeof(int*));
for (i=0;i<numerorighe<i++)
adiacenze[i]=(int *)malloc(numerorighe*sizeof(int));
INIZIALIZZAZIONE
codice:
.....
for (i=0;i<nr;i++)
for (j=0;j<=i;j++)
...................
CREAZIONE MATRICI (stando in un ciclo, mi creo la nuova matrice, libero lo spazio di memoria occupato dalla vecchia matrice, mi alloco spazio di memoria della grandezza della nuova matrice e copio i valori della nuova matrice nelo spazio di memoria allocato......non so se fila: tutto per uan questione di nomi)
codice:
.........
nuova_adiacenze=(int **)malloc(n*sizeof(int));
for (i=0;i<n;i++)
nuova_adiacenze[i]=(int *)malloc(n*sizeof(int));
..........
for (i=0;i<n;i++)
free(adiacenze[i]);
free(adiacenze);
adiacenze=(int **)malloc(n*sizeof(int));
for (i=0;i<n;i++)
adiacenze[i]=(int *)malloc(n*sizeof(int));
adiacenze=nuova_adiacenze;
for (i=0;i<n;i++)
free(nuova_adiacenze[i]);
free(nuova_adiacenze);
vi prego aiutatemi