PDA

Visualizza la versione completa : [C] ritornare campi di strutture


Fabiuz
14-12-2004, 16:20
Hello Boyzz (and eventuali girlz)!!!
avrei una piccola domanda!
Data una funzione (che ritorna un valore di tipo struttura ...) posso ritornare con il return un campo di una struttura???

Se si come faccio??? Grazie e ciauz!!

Ilmalcom
14-12-2004, 17:30
Originariamente inviato da Fabiuz
Hello Boyzz (and eventuali girlz)!!!
avrei una piccola domanda!
Data una funzione (che ritorna un valore di tipo struttura ...) posso ritornare con il return un campo di una struttura???

Se si come faccio??? Grazie e ciauz!!
Se la funzione restituisce una struttura, non puoi restituire anche il campo di essa, poichè hai già un'istruzione return :master: Se proprio vuoi modificarlo, devi ricorrere ad un puntatore, ma secondo me ti sei spiegato male, porta un esempio pratico.

Fabiuz
14-12-2004, 17:48
la mia funzione ritorna un tipo struttura (per essere precisi)
un tipo :
typedef struct Luogo{
int a;
int b;
}Luogo;

bene io nella mia f.ne Luogo Cerca(.....) cerco il luogo e se lo ho trovato ritorno i due campi altrimenti devo ritornare
0,0!!!

Come faccio???

Ilmalcom
14-12-2004, 18:51
Originariamente inviato da Fabiuz
la mia funzione ritorna un tipo struttura (per essere precisi)
un tipo :
typedef struct Luogo{
int a;
int b;
}Luogo;

bene io nella mia f.ne Luogo Cerca(.....) cerco il luogo e se lo ho trovato ritorno i due campi altrimenti devo ritornare
0,0!!!

Come faccio???
Un buon esempio potrebbe essere questo


Luogo Cerca (....) {
Luogo falso;
falso.a = 0;
falso.b = 0;
if (il luogo è trovato)
//Qui fai quello che devi fare con la funzione
else return falso;
}


Abbastanza chiaro?

Fabiuz
14-12-2004, 21:04
ok chiaro!! avrei un altra domanda: se io devo stampare il contenuto di un campo della struttura posso fare:
printf ("%d%d", ............, ..........) ???

perchè ci ho provato ma non mi stampa il secondo argomento!!!

Ilmalcom
14-12-2004, 21:09
Originariamente inviato da Fabiuz
ok chiaro!! avrei un altra domanda: se io devo stampare il contenuto di un campo della struttura posso fare:
printf ("%d%d", ............, ..........) ???

perchè ci ho provato ma non mi stampa il secondo argomento!!!
printf ("%d%d", struttura.campo1, struttura.campo2);

Supponendo che entrambi i campi siano di tipo intero

Fabiuz
14-12-2004, 21:42
no no, così non viene fuori! sul secondo campo mi d+ sempre 0.
Invece il primo lo stampa correttamente!!!

Ilmalcom
14-12-2004, 21:45
Originariamente inviato da Fabiuz
no no, così non viene fuori! sul secondo campo mi d+ sempre 0.
Invece il primo lo stampa correttamente!!!
Sicuramente avrai sbagliato qualcosa nel resto del codice, perchè quell'istruzione è giusta. Se vuoi inserirlo qui, posso darci una letta.

Loading