Oppure

Loading
09/01/14 18:53
Enrico Mario
ok, ma come faccio a cambiare solo la struct? come e dove inserisco i nomi, cognomi ecc?
aaa
09/01/14 18:59
ZioCrocifisso
Ti è stato già dato un codice in cui viene modificato un campo di una struct, e ti ho spiegato come modificarlo quando si tratta di un puntatore.
aaa
09/01/14 19:02
Enrico Mario
scusami, cosi dovrebbe esser giusto

void inPersona (struct persona *p)
printf ("prego inserire nome: ";); scanf ("%s\n", p.nome);
printf ("cognome: ";); scanf ("%s\n", p.cognome);
printf ("quanti numeri di tel ha: ";); scanf ("%d\n", &p.qnumeri);

l'unica cosa, è che non riesco a richiamare la funzione scritta prima (struct numtel innum)
aaa
09/01/14 19:15
ZioCrocifisso
Ripeto: in questo caso devi usare "->", non ".". E riguardo alla funzione precedente, devi usare memcpy.
aaa
09/01/14 19:19
Enrico Mario
ok capito la -> ( <funzione particolare?> (persona->nome) giusto?)

scusami ma nel corso non si è menzionato della memcpy! cos'è?
aaa
09/01/14 19:26
ZioCrocifisso
aaa
09/01/14 19:38
Enrico Mario
grazie, sembra comodo.. ma non posso usarlo il mio profe non l'ha spiegato!
aaa
09/01/14 20:22
Guarda che il corpo delle funzioni inizia dopo la parentesi aperta ... quindi

void inPersona (struct persona *p) 
{
  printf ("prego inserire nome: "); 
  scanf ("%s", p->nome); 

  printf ("cognome: "); 
  scanf ("%s", p->cognome); 

  printf ("quanti numeri di tel ha: "); 
  scanf ("%d", &p->qnumeri); 


A questo punto utilizzi un ciclo for che inizia da 0 e termina a p->qnumeri e all'interno chiami la prima funzione assegnando il risultato agli elementi puntati da p (non serve memcpy)