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