Ich würde sagen, da ist noch ein Speicherleck vorhanden: Beim Test wird nach dem Füllen einfach wieder
InitList aufgerufen, ohne das vorher manuell oder in
InitList automatisch
ClearList aufgerufen wird. Somit bleibt die alte Liste ewig im Speicher liegen, da ja keine Referenz mehr auf diese existiert.
Lösung:
Delphi-Quellcode:
procedure InitList;
begin
ClearList; // Evtl. existierende, alte Liste löschen
FirstNode := nil;
LastNode := nil;
end;
Nachtrag: Da
ClearList die beiden Pointer aber schon selbst auf nil setzt, kann man sich das in
InitList eig. auch sparen - sprich
ClearList und
InitList sind somit die gleiche Funktion.
Es muss nur darauf geachtet werden, dass FirstNode am Anfang nil ist, also z.B. in initialization setzen.