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 :
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 ;
}
mi da errore di allocazione della memoria ;
qualcuno sa spiegarmi il perchè ?
grazie