delete a dynamic array

Michal Minich michal.minich at gmail.com
Sun Oct 12 05:37:49 PDT 2008


Hello tsalm,

> Hello,
> 
> It's certainly a stupid question...
> 
> I want to delete an dynamic array of the memory.
> I don't understand why the example above doesn't clear the memory uses
> by
> the array :
> /* ------------------------------- */
> import tango.time.Time;
> import tango.io.Stdout;
> import tango.stdc.stdio;
> import tango.core.Memory;
> void main()
> {
> // Create a big array
> int[] t = new int[100000000];
> // delete the array
> t = null;
> // Clean the memory
> GC.collect();
> GC.minimize();
> // No, it's not free :-(
> Stdout("Now, the memory must be free...")();getchar;
> }
> /* ------------------------------- */
> 
> How can I totally clear this array of the memory ?
> 
> Thanks in advance,
> TSalm



I had the same problem. It seems to me that Tango GC just doens't collect 
dynamically allocated arrays! (But collects when you use t.lenght)

This worked for me:

import tango.core.Memory;

GC.free (t.ptr);




More information about the Digitalmars-d-learn mailing list