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