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.

Reply via email to