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
INIZIALIZZAZIONEcodice:adiacenze=(int **)malloc(numerorighe*sizeof(int*)); for (i=0;i<numerorighe<i++) adiacenze[i]=(int *)malloc(numerorighe*sizeof(int));
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:..... for (i=0;i<nr;i++) for (j=0;j<=i;j++) ...................
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

Rispondi quotando
