On Saturday, 25 February 2017 at 14:34:31 UTC, rikki cattermole
wrote:
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;
Thanks