[C] File binari

di il
2 risposte

[C] File binari

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??

2 Risposte

  • Re: [C] File binari

    Errore da principiante ... usi puntatori stringa senza allocare lo spazio ...
  • Re: [C] File binari

    Grazie.
Devi accedere o registrarti per scrivere nel forum
2 risposte