PDA

View Full Version : C - passaggio struct in funzione


gabmac2
03-05-2010, 18:36
Avendo una struct
es
struct nomi {
char ..
char ..
char ..}
struct nomi stud[10];
come si fa a passare dal main questa struttura a una funzione per inserire i dati,per poi essere ovviamente ritornata
si mette void(struct ...??)
e come si invoca?
Grazie in ancitipo

cdere
03-05-2010, 18:56
ciao,
innanzitutto indenda il codice quando lo scrivi sul forum, con il tasto # quando inserisci il post.
Per quanto riguarda la tua domanda (anche se sono un po arrugginito di C):
void funzione(struct nomi *xxx)

per invocarla basta funzione(&stud);

comunque puoi anche dichiarare la struct con typedef come segue:
typedef struct {campo1; campo2 } nuovotipo

e definire nuove struct solo con: nuovotipo nuovastruct;

in questo caso chiaramente il prototipo della funzione sarà:
void funzione(nuovotipo *xxx)

ciao ;)

gabmac2
03-05-2010, 19:32
intanto grazie mille,ok
però se devo passare e poi ritornare una struttura basata su un array,diciamo creo un array basato sulla struttura nel main
lo passo come mi hai detto,ma nella funzione dopo l' inserimento come lo ritorno?

cdere
03-05-2010, 19:34
la funzione restituirà void, perchè passando per argomento un puntatore a struct tutto ciò che modifichi nella funzione influirà direttamente quel dato, quindi non ritorni nulla