Deallocate array?
Matic Kukovec
matic.kukovec at pametnidom.si
Thu May 9 17:58:06 PDT 2013
Hi again Steve, or anyone else whose reading this.
I was playing around with D and C# and need help getting this
array stuff to work.
My D program:
import std.stdio, std.cstream, std.array;
void main()
{
string[] temp_array = new string[100000000];
for(int i=0;i<100000000;i++)
{
temp_array[i] = "aaaaaaaaaaaaaaaaaaaaa";
}
temp_array = null;
temp_array = new string[100000000];
for(int i=0;i<100000000;i++)
{
temp_array[i] = "aaaaaaaaaaaaaaaaaaaaa";
}
temp_array = null;
writeln("end");
din.getc();
}
This program causes an OutOfMemoryError.
My C# program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testing
{
class Program
{
static void Main(string[] args)
{
string[] temp_array = new string[100000000];
for (int i = 0; i < 100000000; i++)
{
temp_array[i] = "aaaaaaaaaaaaaaaaaaaaa";
}
temp_array = null;
temp_array = new string[100000000];
for (int i = 0; i < 100000000; i++)
{
temp_array[i] = "aaaaaaaaaaaaaaaaaaaaa";
}
temp_array = null;
temp_array = new string[100000000];
for (int i = 0; i < 100000000; i++)
{
temp_array[i] = "aaaaaaaaaaaaaaaaaaaaa";
}
temp_array = null;
Console.WriteLine("end");
Console.ReadKey(true);
}
}
}
It's the same program, but doesn't cause and OutOfMemory
exception, even if i double the times i run the loop part.
My question is what is how do i get the same C# functionality in
D without running out of memory and preferably without using the
GC directly?
I'm running Windows Vista 64bit, DMD 2.062 fresh install,
compiling with "-m32" flag.
More information about the Digitalmars-d-learn
mailing list