Does 'D' language supports 'C' like VLA?

CraigDillabaugh via Digitalmars-d digitalmars-d at puremagic.com
Mon Apr 13 10:02:12 PDT 2015


On Monday, 13 April 2015 at 16:53:55 UTC, BS & LD wrote:
> As you know in 'C' you can create a variable-length-array using 
> variably modified type and a run-time variable allocating a 
> storage for it - the same way for any local (normally using the 
> stack).
>
> However in 'D' I don't see such feature. Code like this fails:
>
> void main()
> {
>     size_t szArr = 3;
>
>     int[szArr] arr;
> }
>
> With this error message:
>
> error: variable szArr cannot be read at compile time
>      int[szArr] arr;
>
> Life example - 
> http://melpon.org/wandbox/permlink/a6CzBhYk88FohKlf
>
> Note:  I'm also amazed why 'D' compiler can't detect that 
> 'szArr' is a constant anyway.

This likely belongs in D.learn.  What you are looking for is:

int[] arr;
arr.length = 3;




More information about the Digitalmars-d mailing list