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程度)に制限はありますか?