Napisałem procedurkę nastos i zeStosu tak jak się to robi w pascalu ale pojawił się dziwny błąd którego nie rozumiem. Chodzi oczywiśćie oto że wskaźnik żle jest ustawiony.
W procedurce naStos chce aby poprzez zmienną została zwrócona wartość. Jako pierwszy parametr jest wskaźnik i wedle regół powinno być tak że jak zmienie coś na wskaźniku wewnątrz funkcji(procedury) to na zewnątrz będzie to widoczne a tak nie jest. Troche trudno to wytłumaczyć dlatego przesyłąm pełny kod.
include
int abc;
struct TDane
{ int liczba;
char *tekst;};
struct TPojemnik
{ TDane dane;
TPojemnik *wsk; };
TPojemnik *naStos(TPojemnik *p, TDane d)
{ p=new TPojemnik;
p->dane=d;
p->wsk=(p--);
p++;
return p; // wlasne obejscie problemu
};
TPojemnik *zeStosu(TPojemnik *p, TDane &d)
{
TPojemnik *rob;
rob=p;
d=p->dane;
p--;
delete rob;
return p; // wlasne obejscie problemu
}
main()
{
TPojemnik *adres,*a2;
TDane d;
d.liczba=1;
a2=naStos(adres,d);
d.liczba=2;
a2=naStos(adres,d);
cout!!