Thema: Delphi String freigeben nur wo?

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#6

AW: String freigeben nur wo?

  Alt 18. Feb 2019, 10:24
danke dir Uwe..

Ich habe es vorher mal so versucht.

Delphi-Quellcode:
  if not Assigned(FPBuffer) then
    New(FPBuffer);
  //.....
  finalize(FPbuffer^);
  Dispose(FPBuffer);
  FPBuffer := nil;

  finalize(LineStart^);
  Dispose(LineStart);
  LineStart := nil;
Ist das gleiche Ergebnis wie bei dir.
Ich bin darauf gekommen weil du sagtest
Zitat:
Was mir auffällt ist, daß für jede Zeile im AppendToLinkedList ein New() aufgerufen wird, es aber nur ein einziges Dispose() gibt.
Es ist ja eigentlich nicht nötig jedes mal den FPBuffer neu zu erstellen wenn ich es einmal getan habe.
Doch ist nötig Deshalb nehme ich deine Lösung. Danke noch mal.

Beide Varianten melden jetzt keinen Speicherleck mehr.

Frage mich nur warum beim doppelklick in dem EurekaLog Dialog auf diese zeile gesprungen wird.
AppendToLinkedList(nReading, sBuffer); // sBuffer soll einen Memoryleak produzieren.

das irritiert doch etwas denn sBuffer kann ich dort nicht einfach löschen.

Zitat:
Wenn ich eine Variable als integer definiere dann ist automatisch wenn nichts anderes angegeben wird der erste wert = 0 oder liege ich da falsch?
Falsch.
Nun pauschal kann man das nicht sagen siehe die Erklärung dazu von Uwe.

gruss

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