Hi,
Ein "Beweis", dass FillChar nicht funktioniert:
Delphi-Quellcode:
type
TBeweis = packed record
EinString: String;
Zahl: Integer;
end;
var Beweis: TBeweis;
p: Pointer;
begin
Beweis.EinString:= 'Test';
p := @Beweis.EinString[1];
FillChar(Beweis,SizeOf(TBeweis),0);
ShowMessage(PChar(p));
end;
Dürfte dann übrigens ein schönes Speicherleck geben
(Außer der Memory-Manager räumt das trotzdem auf)
Wie SubData schon gesagt hat: Der Pointer zu dem eigentlichen String wird auf nil gesetzt. Aber der String selbst schwirrt noch im Speicher rum. Ist nur nichtmehr erreichbar, falls man den Pointer nicht vorher gesichert hat
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."