我想请教个小问题, 当我自定义个record 这个record在使用中的size是否会变化???(35分)

  • 主题发起人 主题发起人 徐海懿
  • 开始时间 开始时间

徐海懿

Unregistered / Unconfirmed
GUEST, unregistred user!
例如

my=record
filesize:Integer;
strsize:Integer;
commandtype:Integer;
ff:string;
end;


var
v:my;
begin
ShowMessage(IntToStr(sizeof(v)));

v.commandtype:=123;
v.filesize:=23;
v.strsize:=444;
v.ff:='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
ShowMessage(IntToStr(sizeof(v)));

end;

似乎不管v.ff的字符串有多长 size始终只是16, 这是为什么?
而且我把v放入某个文件后面, 读出来也不出错,
 
在这里的string是一个双字节指针,所以总的长度为16个Byte;
但是你存入文件的时候不是这个指针而是他的内容,所以你读的时也不能那读了。
 
当记录定义了,就会在内存中根据记录成员分配空间的
 
那我从个文件中只管读出读入, 而不去管它的 string 的字符串有多长?
 
后退
顶部