Witam,
napisałem procedurę, która ma dodać nowy element do listy jednokierunkowej.
Utworzyłem dwa typy zmiennych:
type wskLista = ^element;
element = record
wartosc : integer;
nast : wskLista;
end;
type
lista = record
rekordow : Integer;
pier_element : ^element;
ost_element : ^element;
end;
Gdy chcę dodać pierwszy rekord w programie mam taki kod:
var el:element;
var kolejka:lista;
el.wartosc := 1234;
kolejka.pier_element := @el;
kolejka.rekordow := 1;
W ten sposób wszystko jest ok - w liście pojawił się 1 element.
Jednak, podobny kod (różnica jest tylko taka, że zamiast 'kolejka' jest wskaźnik na listę) w procedurze nie dodaje elementu:
procedure dodaj_na_poczatek(kolejka : wsk_na_liste; x : integer);
var el : element;
begin
el.wartosc := 123;
kolejka^.pier_element := @el;
kolejka^.rekordow := 1;
end;
Jednak liczba rekordów ulega zmianie (ostatnia linijka), więc problem jest w przypisywaniu wskaźnika w przedostatniej linijce ciała procedury.
Jak mogę rozwiązać ten problem?
Pozdrawiam :)