On Saturday, 5 December 2015 at 09:49:06 UTC, ref2401 wrote:
I want to create a static array large enough to store 1MB of
float values.
What am I doing wrong?
Here is a sample code with notes:
void main(string[] args) {
enum size_t COUNT = 1024 * 512 / float.sizeof; // works OK :)
//enum size_t COUNT = 1024 * 512 * 2 / float.sizeof; //
constantly crashes :(
float[COUNT] arr;
writeln(arr.length);
}
DMD: 2069.2
OS: Win 8.1 Pro
I suppose you overflow the stack.
I am not a Windows dev, but I suppose there is a linker option to
increase the stack size.
Or you can try to use a global __gshared variable or allocate
your array on the heap.