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.