Primo di tutto vi posto un po' di codice
codice:
struct Salvataggio
{
int **matrix;
int righe;
int colonne;
char giocatore1[20];
char giocatore2[20];
};
int salva_partita (int **matrix, int righe, int colonne, char *giocatore1, char *giocatore2)
{
char *filename = "save.dat";
FILE *fp;
int vero=TRUE, falso=FALSE;
struct Salvataggio *salvataggio;
salvataggio = (struct Salvataggio *) malloc(sizeof(struct Salvataggio)); // alloco la memoria per una struct Salvataggio
/* Salvo tutti i valori nei rispettvi campi della struttura */
salvataggio->matrix = matrix;
salvataggio->righe = righe;
salvataggio->colonne = colonne;
strcpy(salvataggio->giocatore1, giocatore1);
strcpy(salvataggio->giocatore2, giocatore2);
if((fp = fopen(filename, "wb")) == NULL) // apro il file binario in scrittura
return falso; // se il file non si apre correttamente la funzione termina
if(fwrite(salvataggio, sizeof(struct Salvataggio), 1, fp) != 1) // salvo la struct Salvataggio nel file
{
fclose(fp); // se la scrittura non avviene correttamente
return falso; // chiudo il file e la funzione termina
}
fclose(fp); // chiudo il file
return vero;
}
Allora il problema è questo: tutti i campi della struct mi si salvano correttamente. Tutti tranne matrix. L'int **matrix che passo come parametro alla funzione è una matrice dinamica precedentemente allocata. Non sono ancora molto esperto di file e sto imparando adesso. Quacuno potrebbe aiutarmi con queste poche info che ho dato?
Grazie.