Se non ti va bene passare il vettore come parametro per riferimento, puoi utilizzare una funzione come questa:
codice:
#include <iostream>

using namespace std;

int *ritornaVettote();

int main() {
   int *mioVettore;  /* Vettore che verrā restituito dalla funzione */
   int i = 0;

   mioVettore = ritornaVettore();

   while (mioVettore[i]) {
      cout << "Elemento " << (i+1) << ": " << mioVettote[i];
      i++;
   }

   return 0;
}

int *ritornaVettore() {
   int *nuovo;
   int j = 0;
   nuovo = (int *) malloc(11 * sizeof(int));
   for (j=0; j<10; j++) nuovo[j] = j;
   nuovo[10] = '\0';

   return nuovo;
}
Ciao.