Originariamente inviato da Edgar89
scusa... forse sarò scemo io che non ho cenato ancora e la fame mi dà le allucinazioni ma praticamente tu da uno stack [0,1,2,3,4] devi ottenere [4,3,2,1,0]? se è così basta fare così:
codice:
void reverse(int* first, int* end){
	if (first>=end) return;
	//scambia i due valori
	int tmp=0;
	tmp=*first;
	*first=*end;
	*end=tmp;
	first++;
	end--;
	reverse(first,end);
}
ovviamente devi calcolare end a parte scorrendo l'array una volta
In questo modo però si oltrepassa il limite imposto dal fatto che lo stack sia una struttura LIFO, ovvero che l'ultimo elemento inserito sia il primo a dover essere estratto ed è anche l'unico che può essere estratto. Al penultimo non puoi accedere, quindi neppure al primo come nel tuo esempio, se non hai estratto prima tutti quelli "che erano sopra di lui"