Oppure

Loading
09/01/14 13:30
ZioCrocifisso
La funzione che ti ha mostrato nessuno crea una struct e imposta il suo campo "numero" in base all'input dell'utente, non ha bisogno di nessun'altra informazione.

(in realtà "f()" in C indica che il numero di argomenti non è definito, il modo corretto è "f(void)";)
aaa
09/01/14 15:24
Enrico Mario
grazie tante!

come sviluppereste la funzione void inPersona (struct persona *p)?

devo definire il puntatore subito dopo?
aaa
09/01/14 15:28
E che farebbe questa funzione? Quando ne hai parlato?
09/01/14 16:24
Enrico Mario
è un quesito che richiede il tema d'esame che hai postato, stavo cercando di risolverla...
dovrebbe acquisire da tastiera i dati di una persona utilizzando la funzione che mi hai aiutato a definire!

aaa
09/01/14 16:52
ZioCrocifisso
Questa volta invece di crearla la struct persona, devi modificare quella che ti è stata passata come parametro. Poiché è un puntatore, devi usare l'operatore * per ottenere la struct, e quindi *(struct.campo), tuttavia in C esiste una forma più breve: struct->campo. Dunque per puntare un valore della struct puntata, &struct->campo.
aaa
09/01/14 17:46
Enrico Mario
potresti farmi un esempio
aaa
09/01/14 18:01
Enrico Mario
[
void inPersona (struct persona *p)
persona elenco_persone [MAXP];
int i;
for (i=0;i<MAXP;i++) {
printf ("nome: ";);
scanf ("%s\n", elenco_persone[i].nome);
...]

se la inizio cosi dovrebbe essere giusto?
aaa
09/01/14 18:46
ZioCrocifisso
No. Perché stai creando un array? Non ho ancora capito bene cosa dovrebbe fare questa funzione: accettando un puntatore e non ritornando niente, sicuramente dovrebbe limitarsi a modificare la struct passata come parametro. Se deve inserirla in un qualche elenco, intanto non ha senso crearlo dentro alla funzione, e poi non sarebbe coerente col tipo: anche se un array può essere passato come argomento utilizzando un puntatore, la funzione non può comunque sapere dove inserire la persona.
aaa