"Memory allocation failed" on big array

urned utt urned at utt.mail
Wed Jul 20 16:18:44 UTC 2022


Hello.

having about 6 Gb free RAM, trying to execute:

```d
string[] dic;
	
for (int i = 0; i < 100_000_000; i++)
{
	
	dic ~= "just a word number "~to!string(i);

	if (i%1_000_000 == 0)
	{
		writef("processed line %s: %s\n", format("%,3d", i), 
format("%,3d", dic.length));
	}
}

```

got an error:
"processed line 32,000,000: 32,000,001
core.exception.OutOfMemoryError at src\core\lifetime.d(126): Memory 
allocation failed"

app used is about 1.6 Gb, more than 4 stays free.

1. What is happened, why dynamic array have mem limit? For 
example, golang uses all free memory that it can.
2. How to fix this?
3. (optional) How to display memory usage? Cannot find function 
for this.

Thanks.


More information about the Digitalmars-d-learn mailing list