Есть задача передовать некоторую структуру в Integer'е.
Сделал так.
type
Container = record
AName: string;
AClass: Integer;
end;
PContainer = ^Container;
function GetContainer(const I: Integer): Container;
begin
Result := PContainer(I)^;
end;
function SetContainer(AContainer: Container): Integer;
var
PC: PContainer;
begin
GetMem(PC, SizeOf(Container));
ZeroMemory(PC, SizeOf(Container));
PC^ := AContainer;
Result := Integer(PC);
end;
procedure FreeContainer(const I: Integer);
begin
FreeMem(PContainer(I));
end;
var
C: Container;
I: Integer;
begin
C.AName := 'name1';
C.AClass := 1;
I := SetContainer(C);
...
C := GetContainer(I);
FreeContainer(I);
...
end.
Мучает вопрос по поводу освобождения памяти. Все ли верно я сделал?