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...?