On Monday, 4 February 2013 at 22:02:48 UTC, bearophile wrote:
monarch_dodra:

Ideally, I wish we could allocate static arrays on the heap easily:

"int[2]* p = new int[2]()"

To do that I wrap the array inside a static struct:

struct Arr {
    int[2] a;
}

Arr* data = new Arr;
writeln(data.a[1]);

[SNIP]

Bye,
bearophile

Yeah... but then I do that, I also tend to smash against the initial:
//----
struct Arr {
    double[4000][4000] a;
}

Arr* data = new Arr;
writeln(data.a[1]);
//----
"Error: index 4000 overflow for static array"
//----

I don't fully understand what this means, so I haven't complained yet. Is this a "legit error" on my end, with the compiler protecting me, or a false positive, where the compiler thinks I want to allocate Arr on the stack...?

Reply via email to