Array Inizialisierung in const

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Mathias
Beiträge: 7362
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Array Inizialisierung in const

Beitrag von Mathias »

Ist die zuverlässig, ich habe einen Stresstest gemacht, in dem ich die array oben fast in den 1GB-Bereich gebracht hatte.

Code: Alles auswählen

program project1;

type
  TMyRec = record
    arr: array[0..65535 * 2500] of Int32;
  end;

  procedure proc;
  const
    arr: TMyRec = ();
  var
    i: integer;
  begin
    Inc(arr.arr[0]);
    Write(arr.arr[0], ' ');
    for i := 1 to Length(arr.arr) - 1 do begin
      if arr.arr[i] <> 0 then begin
        WriteLn('Error: ', arr.arr[i]);
      end;
    end;
  end;

var
  i: integer;

begin
  for i := 0 to 60000 do begin
    proc;
  end;
end.
Was mich stutzig macht, ist dies Warnung:
project1.lpr(10,20) Warning: Some fields coming after "" were not initialized
Dateianhänge
2026-10-07_16-00.png
2026-10-07_16-00.png (6.32 KiB) 54 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten