获取嵌套记录类型的内存大小 ( 积分: 200 )

  • 主题发起人 主题发起人 xiaoywh
  • 开始时间 开始时间
X

xiaoywh

Unregistered / Unconfirmed
GUEST, unregistred user!
例:
type
THead = packed Record
ID : longint;
Name: array [0..7] of char;
end;

PNode = ^TNode;
TNode = packed record
Head : THead;
Sex : byte;
Phone: array [0..21] of char;
HWND : DWord;
end;


var
pData: PNode;
begin
New(pData);
ShowMessage(IntToStr(SizeOf(pData)));
pData := nil;
end;

// 以此为例,提出问题为何SIZEOF没给给出正确的内存大小值? 正确值为39吧,但返回值却只有 4 为何????

急!
 
^TNode是指针,只会返回4,是正确的。
 
ShowMessage(IntToStr(SizeOf(pData^)));
 
pData^ 也是不正确的,因为记录中有另外一个指针 THead
 
继续啊~~~~ ShowMessage(IntToStr(SizeOf(pData^))); =39 更不对了.
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
1K
import
I
I
回复
0
查看
735
import
I
后退
顶部