Zitat von
MrSpock:
Hallo schuetzejanett,
wenn du einen neuen Punkt einfügst, setzt du root ja immer auf diesen neuen Punkt.
Da schaut aber nicht so aus:
Delphi-Quellcode:
procedure TPlayer.pointsAdd(point: Tshot);
var
knot : TLPoints;
begin
if f_points = nil then
begin
New(root);
f_points := root;
f_points^.shot := point;
f_points^.next := nil;
end
else
begin
new(knot);
f_points^.shot := point; // hier liegt der Fehler
f_points^.next := knot;
f_points := knot;
f_points^.next := nil;
end;
end;
root wird nur dann gesetzt wenn f_points = nil ist, d.h. wenn die Liste leer ist.
Oder habe ich da etwas übersehen?
@Janett
Setzt Du zu Beginn f_points auf nil?
Denn eine leere Liste hat nicht zwangsläufig den Wert/die Adresse nil.
Delphi-Quellcode:
procedure TPlayer.pointsAdd(point: Tshot);
var
knot : TLPoints;
begin
if f_points = nil then
begin
New(root);
f_points := root;
f_points^.shot := point;
f_points^.next := nil;
end
else
begin
new(knot);
//f_points^.shot := point; // hier liegt der Fehler
f_points^.next := knot;
f_points := knot;
f_points^.next := nil;
f_points^.shot := point;
end;
end;
Grüße
Klaus