Delphi-Quellcode:
if Halter^.text = Text then
begin
// wenn das zu löschende item am anfang(Halter) ist
i := Halter^.next;
Dispose(Halter);
Halter := i;
end
else
begin
// wenn das zu löschende item in der mitte oder am ende ist
i := Halter;
while (i^.next <> nil) do
begin
if i^.next^.text = Text then
begin
p := i^.next^.next;
Dispose(i^.next);
i^.next := p;
end;
end;
end;
kann mir jemand sagen was hier falsch ist? Der erste teil funktionier einwandfrrei, möchte ich aber ein item aus meiner verketteten liste löschen das in der mitte/am ende ist endet das in einer endlossschleife, jemand ahnung warum?
i, und p sind lokale variablen, erstere ist nur dazu gedacht durch die ganze kette zu laufen, p hält am ende nur einen pointer fest, damit ich das item löschen kann.