Thema: Delphi String freigeben nur wo?

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#11

AW: String freigeben nur wo?

  Alt 18. Feb 2019, 12:45
Hmm.. musste es doch nochmal ändern.
Es funktioniert nur beim ersten mal wird die gleiche Funktion nochmals aufgerufen dann kracht es mit invaliden Pointer.

Delphi-Quellcode:
  { linked List freigeben }
   while LineStart <> nil do begin
     FPBuffer := LineStart;
     LineStart := FPBuffer.Ptr;
     { Bei Dispose kümmert sich der Compiler um das Finalize }
     Dispose(FPBuffer);
   end;
   { keine dangling Pointer hinterlassen }
   FPBuffer := nil;
   FToPBuffer := nil;
so geht's.

Delphi-Quellcode:
  Count := LineStart.Max;
  for i := 0 to Count do
  begin
    FPBuffer := LineStart;
    LineStart := FPBuffer.Ptr;
    Dispose(FPBuffer);
  end;

  Dispose(LineStart);

  FPBuffer := nil;
  FToPBuffer := nil;
  LineStart := nil;
finde den Fehler bei deiner Variante leider nicht.

gruss

Geändert von EWeiss (18. Feb 2019 um 12:52 Uhr)
  Mit Zitat antworten Zitat