我想在下面的函數中獲取任何「記錄」類型的大小。但是看來它不工作:是否可以獲取指針在Delphi 7中指向的類型的大小?
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指向的類型的大小。它如何獲得大小?
@Rob,感謝您的詳細信息,我相信這是編譯器的魔力。我認爲這也解釋了爲什麼沒有「新」程序。 – trudger 2009-06-09 15:39:46