Einzelnen Beitrag anzeigen

ford42

Registriert seit: 2. Okt 2015
60 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Pointer-Adresse freigeben

  Alt 12. Nov 2015, 12:51
Delphi-Version: 5
Hey,
ich sitze gerade an Binärbäume dran und bekomme es nicht hin, eine Adresse eines Pointers auf nil zu setzen/freizugeben.

Folgende 2 Code-Ausschnitte dürften es klarer machen, was ich meine:
Code:
  PNode = ^TNode;
  TNode = record
    daten: String;
    links: PNode;
    rechts: PNode;
  end;
Code:
procedure TForm4.Bt_LoeschenClick(Sender: TObject);
begin
  Dispose(PStandNode); //Pointer/record wird auf nil gesetzt, jedoch bleibt die Adresse vom Pointer vorhanden
  PStandNode := PWurzelNode;  //LÖSCHEN NOCH RICHTIG IMPLEMENTIEREN
  Lb_Ausgabe.Caption := PStandNode.daten;
  StatusBt;
end;
Wenn ich Dispose verwende, wird zwar der Pointer freigegeben(?), aber die Adresse (z.B. $2692B40) bleibt vorhanden.

Wenn ich jetzt in dem Baum navigiere, zeigt (z.B.) rechts weiterhin auf $2692B40, jedoch bekomme ich natürlich eine access-violation-Exception.


Wie würdet ihr dies lösen, oder gibts dazu vlt sogar ne Methode, die mir da helfen könnte?


Vielen Dank
Gruß ford42
  Mit Zitat antworten Zitat