我想在以下函数中获取任何“记录”类型的大小。但似乎它不起作用:
function GetDataSize(P : Pointer) : Integer;
begin
Result := SizeOf(P^); // **How to write the code?**
end;
例如,以下记录的大小为 8 个字节
SampleRecord = record
Age1 : Integer;
Age2 : Integer;
end;
但GetDataSize(@a)
总是返回 1(a 当然是 SampleRecord 类型的变量)。我该怎么办?
我注意到 Delphi 有一个过程过程 New(var P: Pointer)可以分配内存块对应于 P 指向的类型的大小。它如何获得大小?