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

Reply via email to