Originariamente inviato da Noise85
salve a tutti,
Ho cercato nel forum ma non ho trovato una soluzione quindi posto un nuovo topic.
La mia domanda è semplice.
In c è possibile assegnare ad una variabile i risultati di una funzione, che ritorna più di un valore?
Per esempio:
codice:
int calcola(int, int);
int main(int argc, char *argv[]) {
// Posso fare qualcosa del genere? Qual'è (se esiste) il metodo giusto?
int variabile = calcola(1,3);
return 0;
}
int calcola(int x,int y) {
return x,y;
}
No!
Ma un modo per ottenere lo stesso risultato (ed è il modo con cui comunemente si fa) è passare le variabili che vuoi assegnare "per riferimento" cioè come puntatori.In altre parole la tua funzione diverrebbe:
codice:
int calcola(int, int,int[]);
int main(int argc, char *argv[]) {
// Posso fare qualcosa del genere? Qual'è (se esiste) il metodo giusto?
int variabile[2];
calcola(1,3,variabile);
return 0;
}
void calcola(int x,int y,int result[2]) {
result[0] = x;
result[1] = y;
}
Oppure invece di due puntatori ad intero passi direttamente un array a due elementi e lavori sulle sue "caselline":
codice:
int calcola(int, int);
int main(int argc, char *argv[]) {
// Posso fare qualcosa del genere? Qual'è (se esiste) il metodo giusto?
int variabile = calcola(1,3);
return 0;
}
int calcola(int x,int y) {
return x,y;
}
No!