定义数组的一个有趣现象

  • 主题发起人 主题发起人 import
  • 开始时间 开始时间
I

import

Unregistered / Unconfirmed
GUEST, unregistred user!
ZE="3"> 按照下面的方式定义数组
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;
 

Similar threads

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