Cześć.
Mam pewien problem z alokacją pamięci. Staram się rozwiązać SPOJowe zadanie:
http://pl.spoj.com/problems/PP0502B/
i niestety program nie działa. Wklejam kod(opis problemu pod spodem):
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main(){
int rozmiar = 0, testy = 0;
cin>>testy;
int *tablica;
while(testy){
cin>>rozmiar;
tablica=(int *)malloc(sizeof(int)*rozmiar);
for(int i = 0; i<rozmiar; i++){
cin>>*tablica;
tablica++;
}
tablica--;
for(int i =rozmiar-1;i>=0; i--){
printf("%d ", *tablica);
tablica--;
}
cout<<endl;
testy--;
free(tablica);
}
return 0;
}
Dla ilości testów >5 następuje zrzut pamięci w trakcie wykonywania programu. Wersja kompilatora - 4.9.2, wszystko pod cygwinem. Kod chyba jest dość jasny.
Znalazłem rozwiązanie zadania na forum(bazujące na rekurencji), ale chciałbym zrobić to tą metodą. Na stacku jest trochę o tym, ale problemy z pamięcią są mocno... indywidualne? Poza tym często kawałki kodu są dość pokaźne i zaawansowane - trudno się w nich połapać laikowi.
Ma ktoś jakiś pomysł? Byłbym bardzo wdzięczny za pomoc.