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

John Colvin via Digitalmars-d digitalmars-d at puremagic.com
Mon Apr 13 10:04:46 PDT 2015


On Monday, 13 April 2015 at 17:02:13 UTC, CraigDillabaugh wrote:
> 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;

Eww.

auto arr = new int[3];

Also, I think he's referring to something slightly different.


More information about the Digitalmars-d mailing list