Re: Two Dimensional Arrays
Waldek Hebisch <[email protected]> Tue, 14 Feb 2017 16:37:17 +0100 (CET)
| Newsgroups | gmane.comp.compilers.gpc |
|---|---|
| Message-ID | <[email protected]> |
Peter B wrote:
>
> Does anyone know the syntax for initializing a dynamic array of more
> than one dimension?
>
>
> type
> {$ifdef __GPC__}
> tMSet (n:CWord) = Array [1..n, 1..n] Of double;
> {$else}
> tMSet = Array Of Array Of double;
>
> var
> MSet : tMSet;
> {$endif}
>
> pMSet : ^tMSet;
>
> ........
>
>
> {$ifdef __GPC__}
> new (pMset, n, n);
> {$else}
> SetLength (Mset, n, n);
> pMSet := @Mset;
> {$endif}
>
>
> The above works in FPC, but fails in GPC on the "new" with
> "error: `New' applied to this schema requires 1 discriminant value"
>
> This general approach works fine for 1D arrays.
As the error message says, 'tSet' is a schema with _one_
parameter (discrimnant). So 'new' requires single parameter,
that is 'n'. In general you may use complicated formula to
compute array bounds from discriminant values. GPC generated
appropriate code so that 'new' will do right thing.
--
Waldek Hebisch
_______________________________________________
Gpc mailing list
[email protected]
https://www.g-n-u.de/mailman/listinfo/gpc