Does D support dynamically allocated multi-dimensional arrays?

Simen kjaeraas simen.kjaras at gmail.com
Sun Aug 15 19:30:40 PDT 2010


Seth Hoenig <seth.a.hoenig at gmail.com> wrote:

> What I really want is something like this:
>
> auto s = args[1];
> auto t = args[2];
> auto d = new int[s.length][t.length];
>
> but the compiler complains with the error: Error: Integer constant
> expression expected instead of s.length
>
> So then I try to fudge it with something like:
>
> auto d = new int[][t.length];
> d.length = s.length;
>
> But then accessing elements of d throws an exception:
> core.exception.RangeError at Lev(7): Range violation
>
> Soo.. how am I supposed to make a matrix when I don't know the  
> dimensions at
> compile time?

auto d = new int[][](args[1].length, args[2].length);

-- 
Simen


More information about the Digitalmars-d mailing list