On 26/02/2017 3:31 AM, helxi wrote:
I am trying to create an array which has a user defined size. However
the following program is not compiling:

import std.stdio;

void main(){
    write("Enter your array size: ");
    int n;
    readf(" %s", &n);
    int[n] arr; //<-Error: variable input cannot be read at compile time
    writeln(arr);
}

1. What's causing this?

T[X] is a static array, its size must be known at compile time.
Static arrays are passed around by value not by reference and generally get stored on the stack not the heap.

2. How can I get around this? I know I can always create a loop that
appends value 'n' times.

This is where you want a dynamic array, allocated on the heap at runtime.

T[] array;
array.length = n;

Reply via email to