Das hängt davon ab, wie du Records benutzt.
Allgemein kann man sagen:
Wird ein Record als Zeiger deklariert:
- mit New() erstellen und dem Zeiger zuweisen
- mit Dispose() freigegeben (Zeiger ist danach ungültig)
Delphi-Quellcode:
type
PMyRecord = ^TMyRecord;
TMyRecord = record
ID: Integer;
Name: string;
end;
var
P: PMyRecord;
begin
New(P);
try
TuWasMit(P);
finally
Dispose(P);
end;
end;
Wird ein Record direkt als Variable deklariert, kümmert sich der Compiler:
- um die Bereitstellung des Speichers beim Eintritt in den Gültigkeitsbereich
- um die Freigabe des Speichers beim Verlassen des Gültigkeitsbereichs
Delphi-Quellcode:
type
PMyRecord = ^TMyRecord;
TMyRecord = record
ID: Integer;
Name: string;
end;
var
R: TMyRecord;
begin
TuWasMit(^R);
end;