Also ich dachte immer, dass FreeAndNil eine Kombination aus ".Free" und ":= nil" sein soll (was es scheinbar auch ist):
Delphi-Quellcode:
ObjectX.Free;
ObjectX := nil;
//oder:
FreeAndNil(ObjectX);
Daher wäre ich irgendwie sowieso nie auf die Idee gekommen das auf ein Array (Array <> Objekt) anzuwenden.
Zitat von
Balu der Bär:
Nein, das eigentliche FreeAndNil(array) geht niemals schief. Nur beim späteren Arbeiten mit dem Array (z.B. Nachfüllen von Daten) kommt es halt in unregelmäßigen Abständen zu Fehlern.
Also wenn ich FreeAndNil nutze (wenn auch nicht für Arrays
), dann doch um Speicher freizugeben. Das es danach zu Fehlern kommen muss wenn man versucht auf das Objekt (in diesem Fall ja Array) zuzugreifen ist doch logisch, oder?