[fpc-pascal] Open vs dynamic arrays

cobines cobines at gmail.com
Sun Apr 22 11:56:58 CEST 2012


2012/4/22 Mark Morgan Lloyd <markMLl.fpc-pascal at telemetry.co.uk>:
>  but I'm not sure why that works when it
> didn't earlier (i.e. before I'd started using array of const).

You said you used
DbgArray= array of integer

then I assume this declaration?
procedure ClrDebug(const panels: DbgArray);

If so the parameter is a dynamic array not open array and you cannot
call it with constant array:

var
  arr: DbgArray;
begin
 ClrDebug([DbgKey, DbgCode1, DbgTx]); //Won't work
 SetLength(arr, ...);
 arr[0] := ...
 ...
 ClrDebug(arr);// This works
end;


This on the other hand is an open array parameter:
procedure ClrDebug(const panels: array of integer);

--
cobines



More information about the fpc-pascal mailing list