Delphi Error – E2246 Need to specify at least one dimension for SetLength of dynamic array

Delphi Compiler Error

E2246 Need to specify at least one dimension for SetLength of dynamic array

Reason for the Error & Solution

The standard procedure SetLength has been called to alter the length of a dynamic array, but no array dimensions have been specified.

program Produce;

  var
    arr : array of integer;

begin
  SetLength(arr);
end.


The SetLength in the above example causes an error since no array dimensions have been specified.

program solve;

  var
    arr : array of integer;

begin
  SetLength(arr, 151);
end.


To remove this error from your program, specify the number of elements you want the array to contain.