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:
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;
}
In poche parole, per ogni parametro passato per riferimento ogni modifica effettuata sui parametri formali si riflette su quelli attuali.
Ciao.