PDA

View Full Version : [c] problema lettura di un file binario


toni00c
12-01-2011, 08:29
#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 :



#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