Gdy wywoluje procedure wyczysc, wywala mi blad nr204:Invalid pointer operation, albo po wyswietlenie wstawia jakies smieci. Używam Borland Turbo Pascala 7.0
program listy;
uses crt;
type wsk=^punkt;
punkt=record
a,b:Byte;
next:wsk;
end;
function dodaj(i,j:Byte; head:wsk):wsk;
var el,tmp:wsk;
begin
new(el);
tmp:=head;
head:=el;
el^.next:=tmp;
el^.a:=i;
el^.b:=j;
dodaj:=head;
end;
procedure wyczysc(head:wsk);
var temp:wsk;
begin
temp:=head;
while (temp<>nil) do
begin
head:=temp^.next;
dispose(temp);
temp:=head;
end;
head:=nil;
end;
procedure show(head:wsk);
var temp:wsk;
begin
temp:=head;
while temp<>nil do
begin
writeln(temp^.a,' ',temp^.b);
temp:=temp^.next;
end;
end;
var
head:wsk;
x,y:Byte;
m:char;
begin
head:=nil;
repeat
begin
writeln('1.dodaj');
writeln('2.wyczysc');
writeln('3.wypisz');
writeln('0. koniec');
m:=readkey;
case m of
'1': begin
writeln('podaj dane');
readln(x,y);
head:=dodaj(x,y,head);
end;
'2': wyczysc(head);
'3': show(head);
end;
end;
until m='0';
end.