se ho un vettore di struct posso tranquillamente passale per indirizzo.
mentre se ho una struct semplice, ad esempio:
struct persona { char nome[30];
char cognome[30];
int anni;
} mario;
per passare un solo elemento ad una funzione , faccio il passaggio per valore.
mentre se voglio passarla tutta posso definire un prototipo del genere?
struct persona funzione (struct persona nome_persona);
e poi per la chiamata ad esempio:
funzione( massimo);
e nel return della struct metto:
return (massiomo_rinnovato); //ovvero ritorno tutta la struct come se fosse una variabile
posso fare tutto questo?
oppure devo passare la struct per puntatore?
facendo
void funzione (struct persona *ptr); //protoripo
la chiamata:
funzione (&massimo);
senza ritornare nulla?