Tworzenie tablicy dynamicznej w funkcji

0

Prosty problem, którego rozwiązanie dla mnie nie znane.

Co należy zrobić, jeżeli do funkcji mam zamiar przekazywać wskaźnik i w niej ustawiać go na "new int[size]" - linia 10
Robię tak, gdyż nie ma(nie znam) niczego na wzór "= new int[]", gdy nie znamy rozmiaru.

P.S. Poniższa funkcja ma konwertować liczbę składającą się z wielu cyfr na tablicę. Lokalnie działa, ale przez powyższy nieszczęsny problem stoję w miejscu. Jeżeli macie jakieś zastrzeżenia do jakości kodu, to proszę walić śmiało, ale z klasą. Przede wszystkim jednak chciałbym poznać rozwiązanie problemu. ;)

void intToArray(int number, int *intArray)
{
    int temp = number, i = -1, divider = 10;

    do{
        temp /= divider;
        i++;
    }while(temp > 0);

    intArray = new int[i];

    while(number > 0)
    {
        intArray[i] = number%divider;
        number /= divider;
        i--;
    }

    cout << intArray[0] << " " << intArray[1] << " " << intArray[2];
}
0
int* intToArray(int number, int* intArray)
{
    ...    
    intArray = new int[i];
    ...
    return intArray;
}
2

Niestety powyższe przynosi mi ten sam rezultat. Czyli śmieci z pamięci. :/

Bo ta funkcja ma wyglądać tak:

int *intToArray(int number)

A jeżeli już koniecznie musisz przekazywać wynik przez parametr a nie wartość zwracaną to tak (należy użyć referencji lub wskaźnika na wskaźnik):

void intToArray(int number, int *&intArray)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0