Ciao. Ho un piccolo problema con la scrittura e lettura di un file binario.
Il codice è il seguente:
=== Scrittura ===
typedef struct{
char *name;
char *surname;
int age;
}Person;
int main()
{
FILE * f = fopen("file","wb");
if(f == NULL ) return -1;
Person io = {"Andrea" , "Rossi", 23};
fwrite( &io, sizeof(Person), 1, f );
fclose(f);
return 0;
}
===Lettura===
typedef struct{
char *name;
char *surname;
int age;
}Person;
int main()
{
Person io;
FILE *f = fopen("file","rb");
if( f == NULL ) return -1;
fread( &io, sizeof(Person), 1, f);
printf("Name:%s, Surname:%s, Age:%d",io.name, io.surname, io.age);
fclose(f);
return 0;
}
Precisamente mi stampa: "Name:Name:%s, Surname:%s, Age:%d, Surname:s, Surname:%s, Age:%d, Age:666"
Non riesco a recuperare nome e cognome, mi stampa solo l'età per bene. Non so dove sbaglio. Qualche consiglio??