在 Delphi 程序中,我有一个包含 4,000,000,001 个基数的动态数组。我正在尝试写(后来读)它做一个驱动器。我使用了以下内容:
const Billion = 1000000000;
stream := tFileStream.Create( 'f:\data\BigList.data', fmCreate);
stream.WriteBuffer( Pointer( BigArray)^, (4 * billion + 1) * SizeOf( cardinal));
stream.free;
它被炸毁了: ...引发异常类 EWriteError 并带有消息“流写入错误”。
它写入的文件大小只有 3,042,089KB。
难道我做错了什么?一次写入的大小有限制吗(约3GB)?