Staram się zrobić implementację stosu. Problem pojawił się w funkcji która "zrzuca element" ze stosu.
struct elem{
int dane;
elem* nast;
};
/* */
int pop (elem* &stos)
{
if(stos!=NULL){
int x = stos->dane;
stos=stos->nast;
return x;
}
return 0;
}
Wg mnie nie jest to źle napsiane, jednak kompilator się wysypuje. Wyrzuca mi w konsoli same (zakładam, że) adresy albo losowe wartości..
while(!isEmpty(mojStos))
cout << pop(mojStos) << " ";
Wiem też, że trzeba potem zwolnic pamięć. Tylko gdzie i jak? Pozostałe funkcje stosu (isEmpty, push, topEl [sprawdzanie elementu na górze stosu]) działają.