Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: A/V bei löschen von Element in Array

  Alt 17. Jul 2010, 01:11
Wenn du die Stringreferenzen nicht korrekt behandelt, dann muß es ja probleme geben.

der String, welchen du "angelich" löschts ... da überschreibst du nur den "Zeiger", aber der String selber bleibt als Speicherleck zurück.

Und als Ausgleich hast du durch dein Move auch noch den letzen String im Array mit einer doppelten Referenz, welcher aber nicht in der Referenzzählung auftaucht, womit der dann schon freigegeben wird, aber dennoch in der Liste steht ... taj, beim nächsten Zugriff darauf, da muß es einfach knallen.


Mein Tipp: verwende eine echte Stringliste, statt des Arrays ... so sehr aufblähen tut soeine Liste auch nicht und du mußt nicht an der Referenzzählung rumfummeln.

Ansonten mußt du die Zeiger halt korrekt behandeln, also manuell auf nil, bzw. einen Leerstring setzen.
$2B or not $2B
  Mit Zitat antworten Zitat