delete a dynamic array
tsalm
tsalm at free.fr
Sun Oct 12 04:59:36 PDT 2008
>> 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);
>
>
Not for me :(
Here is my code :
/*---------------------------------------*/
import tango.io.Stdout;
import tango.stdc.stdio;
import tango.core.Memory;
void main()
{
// Create a big array
int[] t; // = new int[100000000];
t.length = 100000000 ;
// delete the array
GC.free (t.ptr);
// Clean the memory
GC.collect();
GC.minimize();
// No, it's not free :-(
Stdout("Now, the memory must be free...")();getchar;
}
More information about the Digitalmars-d-learn
mailing list