[Beginner]Variable length arrays
rikki cattermole via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Feb 25 06:34:31 PST 2017
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;
More information about the Digitalmars-d-learn
mailing list