codice:#include <stdio.h> #include <stdlib.h> struct persona { int numero ; char *nome ; char cognome [6] ; } ; typedef struct persona persona ; int main () { FILE *Jtr ; persona persona ; if ( (Jtr = fopen ("persona.dat" , "wb" ) ) != NULL ) { /* inizializzo la struttura */ persona.numero = 1 ; persona.nome = "tony" ; gets (persona.cognome) ; fwrite (&persona , sizeof (struct persona ) , 1 , Jtr ) ; fprintf (stdout , "%s\n" , persona.nome ) ; } fclose (Jtr ) ; system ("PAUSE") ; return 0 ; }
quando vado per leggerla con questo codice :
mi da errore di allocazione della memoria ;codice:#include <stdio.h> #include <stdlib.h> struct persona { int numero ; char *nome ; char cognome [6] ; } ; typedef struct persona persona ; int main () { FILE *Jtr ; persona persona ; if ( (Jtr = fopen ("persona.dat" , "rb" ) ) != NULL ) { fread (&persona , sizeof (struct persona ) , 1 , Jtr ) ; fprintf (stdout , "%d%s\n" , persona.numero , persona .cognome ) ; fprintf (stdout , "%s\n", persona .nome ) ; /* questa e la riga che mi crea problemi */ } fclose (Jtr ) ; system ("PAUSE") ; return 0 ; }
qualcuno sa spiegarmi il perchè ?
grazie

Rispondi quotando