E2100 Type de donnée trop grand : au-delà de 2 Go (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Vous avez spécifié un type de données trop grand pour la représentation par le compilateur. Le compilateur générera cette erreur pour des types de données ayant une taille supérieure ou égale à 2 Go. Vous devez diminuer la taille de la description du type.


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.

Il est très facile de voir pourquoi ces déclarations provoqueront des messages d'erreur.


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.

La solution simple pour éviter ce message d'erreur est de vérifier que la taille des types données reste sous 2 Go. Une méthode plus compliquée utiliserait la restructuration de vos données, comme cela a été commencé avec la déclaration BigRecord.