will .length=0 clear memory

Bill Baxter wbaxter at gmail.com
Wed Nov 5 21:56:47 PST 2008


On Thu, Nov 6, 2008 at 2:46 PM, Jarrett Billingsley
<jarrett.billingsley at gmail.com> wrote:
> On Thu, Nov 6, 2008 at 12:02 AM, Big Bill <bigdorkyb at tengu.com> wrote:
>> i just wonder here,
>>
>> free(x); will free contents of x, but will x.length=0 free memory too?
>
> free(x) doesn't clear the contents of x.  In fact it's completely
> illegal and I'm surprised your compiler allows it.  Not only can
> arrays not be implicitly cast to pointers, but free() is a C stdlib
> function, and using free() to free memory allocated by the D GC is a
> terrible idea.
>
> Did you mean "delete x;"?

And if you want to let the GC handle it, then

    x = null;

For some reason I completely missed that free(x) in the original mail.
 Yeh, free() on a D array is not right.

--bb


More information about the Digitalmars-d-learn mailing list