按照下面的方式定义数组
type
TMyRecord=packed record
F1,F2:integer;
F3,F4:Word;
end;
TMyRecordArray = array[0..MaxInt div 2] of TMyRecord;
PMyRecordArray = ^TMyRecordArray;
编译器会提示你数组太大,超过2GB,如果你该成MaxInt div 20,不会提示你数组太大,但是编译也不能通过,经过验证,记录占用内存越大,数组上限越小,否则无法编译,不过编译错误信息很奇怪的。
所以一般应该这样定义:
TMyRecordArray = array[0..MaxInt div SizeOf(TMyRecord) - 1] of TMyRecord;