1
我有一组传统记录。访问(传统)记录的字段
当我知道记录的开始地址,字段偏移量和字段类型时,如何访问第N条记录的字段? 例如。
type
Tstring = string[20];
TRecord = packed record
aInteger : integer;
aDouble : double;
aString : Tstring ;
bString : string;
end;
var
aArray : array[0..N] of Trecord;
p : pointer;
....
p := pointer(cardinal(aArray[5])+12); // 12 = offset of field "aString"
writeln(Tstring(p^);
等等...
这如我所料不工作。请问我哪里错了?
请添加一个语言标签并解释一下您在此上下文中的传统记录的含义? – paisanco
@paisanco看起来像一些pascal的味道,也许[对象pascal](http://docwiki.appmethod.com/appmethod/1.13/topics/en/Structured_Types#Records_.28traditional.29) –
为什么你需要做这个?如果你知道'aArray [5]'是一个'TRecord',为什么不直接用'TRecord(aArray [5]).aString'类型化并直接访问? –