Ciao a tutti ho un problema che proprio non riesco a capire...![]()
ecco il coddice:
il problema è che dopo aver deallocato matrice, quando vado a caricare da file quello che avevo salvato e lo metto su matrice2 la printf finale mi stampa un numero tipo -1233242345. In pratica in matrice2 non mi si salva quello che io salvo su file.codice:#include <stdio.h> #include <stdlib.h> int ** alloca_matrice (int righe, int colonne); void dealloca_matrice(int **matrix, int righe); void inizializza_matrice (int **matrix, int righe, int colonne); main () { char *filename = "save.dat"; FILE *fp; int **matrice = NULL, **matrice2; matrice = alloca_matrice(6,7); inizializza_matrice(matrice, 6,7); matrice2 = matrice; fp = fopen(filename, "wb"); fwrite(matrice2, sizeof(int), 42, fp); fclose(fp); dealloca_matrice(matrice, 6); fp = fopen(filename, "rb"); fread(matrice2, sizeof(int), 42, fp); fclose(fp); printf("\n\t%d\n", matrice2[0][0]); return 0; } int ** alloca_matrice (int righe, int colonne) { int **matrix, i; if(!(matrix= (int **) malloc (righe * sizeof(int *)))) return(NULL); for (i=0; i<righe; i++) { if(!(matrix[i]= (int *) malloc(colonne * sizeof(int)))) return(NULL); } return(matrix); } void dealloca_matrice(int **matrix, int righe) { int i=0; for(i=0; i<righe; i++) { free(matrix[i]); } free(matrix); } void inizializza_matrice (int **matrix, int righe, int colonne) { int i, j; for (i=0; i<righe; i++) { for (j=0; j<colonne; j++) { matrix[i][j]= 0; } } }
Sto andando fuori di testa per questo problema.
Grazie.

.
Rispondi quotando