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
   563   564   565   566   567   568   569   570   571   572   573