No!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; }
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:
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[]); 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; }
No!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; }

Rispondi quotando