Thema: Delphi Pointer zuweisen

Einzelnen Beitrag anzeigen

Benutzerbild von Mystic
Mystic

Registriert seit: 18. Okt 2003
Ort: Flerzheim
420 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Pointer zuweisen

  Alt 19. Okt 2003, 16:28
Hallo Florian,

Wenn ein "Invalid Pointer Operation"-Fehler auftritt, hier die Lösung:

Die Exception tritt nicht beim Zuweisen, sondern beim Disposen von pointer auf.

Du darfst diesen Zeiger nicht mit New initialisieren. Damit kriegt der Zeiger seine eigene Variable. Wenn du einen Zeiger einem anderen Zeiger zuweist, 'verbiegst' du den anderen Zeiger, sodass er nicht mehr auf seine Variable sondern auf die Variable von ersterem Zeiger weist.

Wenn du dann die erste Variable (das Listitem) zerstörst und versuchst, pointer per dispose zu entfernen , hat die Dispose-Anweisung nichts mehr, das sie entfernen könnte und ruft einen "Invalid Pointer Operation"-Fehler hervor. Die alte Variable gurkt dann immer noch unnütz im Speicher rum (bis das Programm beendet wird).

Der Fehler verschwindet, wenn du die Zeile mit dem Zuweisen entfernst, da ja Dispose dann die Variable entfernen kann. Deswegen kann man den Eindruck haben, das es dort passiert.



MfG

Mystic
Jan Steffens
  Mit Zitat antworten Zitat