E2100 Data 型が大きすぎます:2GB を超えました (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

大きすぎてコンパイラが表現できないデータ型を指定しました。コンパイラは,2GB 以上のサイズのデータ型に対してこのエラーを生成します。型の記述のサイズを小さくしなければなりません。


program Produce;

  type
    EnormousArray = array [0..MaxLongint] OF Longint;
    BigRecord = record
      points : array [1..10000] of Extended;
    end;

  var
    data : array [0..500000] of BigRecord;

begin
end.

{ これらの宣言がエラーメッセージを発生させた理由は見ればすぐにわかる }


program Solve;
  type
    EnormousArray = array [0..MaxLongint DIV 8] OF Longint;

    DataPoints = ^DataPointDesc;
    DataPointDesc = array [1..10000] of Extended;
    BigRecord = record
      points : DataPoints;
    end;

  var
    data : array [0..500000] OF BigRecord;


begin
end.

{ このエラーメッセージを回避するには,データ型のサイズを必ず 2GB 未満にとどめれば簡単に解決できる。もっと複雑な方法としては,BigRecord 宣言でしたようにデータの構造を変更する }