Page 568 - Informatica dalla A a Z
P. 568
char nome [ MAXLENGTH ];
char cognome [ MAXLENGTH ];
} Persona ;
void stampa_persona ( Persona p) {
printf ("%s %s\n", p.nome , p. cognome );
}
void modifica_persona ( Persona p){
p.nome [0] = ‘\0 ‘; /* passando una struttura per valore ,
viene effettuata una copia di ogni suo attributo , array compresi
*/
}
main () {
Persona p = {" Fulvio ", " Dinoi "};
stampa_persona (p);
modifica_persona (p); /* la funzione modifica_persona
non altera in alcun modo la variabile di tipo Persona */
stampa_persona (p);
}
oppure
void alloca_persona ( Persona *p, char nome [], char cognome [])
{
/* alloco in modo dinamico gli array che contengono nome e
cognome */
p-> nome = ( char *) malloc ( MAXLENGTH * sizeof ( char ));
p-> cognome = ( char *) malloc ( MAXLENGTH * sizeof ( char
));
strcpy (p->nome , nome );
strcpy (p-> cognome , cognome );
}
void stampa_persona ( Persona p) {
printf ("%s %s\n", p.nome , p. cognome );
}
void modifica_persona ( Persona p){
564