On 2011-04-02 06:21, simendsjo wrote: > http://digitalmars.com/d/2.0/arrays.html says static arrays are > limited to 16mb, but I can only allocate 1mb. > My fault, or bug? > > enum size = (16 * 1024 * 1024) / int.sizeof; > //int[size] a; // Error: index 4194304 overflow for static > array > enum size2 = (16 * 1000 * 1000) / int.sizeof; > //int[size2] b; // Stack Overflow > //int[250_001] c; // Stack Overflow > int[250_000] d; // ok
Well, 16 * 1024 * 1024 certainly isn't going to work when it's an array ints. An int is 4 bytes. So, the max would be more like 4 * 1024 * 1024, and that's assuming no overhead (which there may or may not be). Now, 4 * 1024 * 1024 is 4_194_304, which is definitely more than 250_000, so if 16mb is indeed the limit, I don't know why you can't create one greater than 250_000, but you're _not_ going to be able to create one of length 16 * 1024 * 10243. That would be 64mb. - Jonathan M Davis
