Puoi passare i parametri per riferimento o tramite un puntatore. Siccome mi si era bloccato il PC mentre postavo, sarò un po' più conciso e vado subito agli esempi.
N.B.: volendo magari puoi anche far restituire un solo parametro e passare tutti gli altri per riferimento, ma questo metodo forse è più comprensibile. Per quanto riguarda i parametri puntatori, in C devi usarli per forza, ma dato che in C++ ci sono i riferimenti (che ti evitano tutti quegli asterischi) ... perché non usarli?
Vado subito al tuo problema, sia con i puntatori che con i riferimenti:
In poche parole, per ogni parametro passato per riferimento ogni modifica effettuata sui parametri formali si riflette su quelli attuali.codice:void conPuntatori( int*, int** ); void conRiferimenti( int&, int*& ); void main() { int a; int* b; ... conPuntatori( &a, &b ); // nota: '&' significa 'indirizzo di' conRiferimenti( a, b ); cout << a << endl; // stampa 1000 cout << b << endl; // stampa 65535 (=0x0000FFFF) } void conPuntatori( int* intero, int** puntatore ) { *intero = 1000; *puntatore = ( int* ) 0x0000FFFF; // un indirizzo *a caso* :p } void conRiferimenti( int& intero, int*& puntatore ) // nota: '&' indica la dichiarazione di un riferimento (in inglese reference) { intero = 1000; puntatore = ( int* ) 0x0000FFFF; }
Ciao.



Rispondi quotando