On Mon, 18 Apr 2011 04:31:26 -0400, %u <[email protected]> wrote:

Is it necessary free memory allocated for member of structure, like in C? I
suppose not (we have gc). Example:

struct BITMAP {
(...)
ubyte[] pixels;
}

BITMAP* bitmap = new BITMAP;
bitmap.pixels = new ubyte[100*100];
(...)

// delete bitmap.pixels; //not necessary?

delete bitmap;

It is not necessary, because pixels will be collected by the GC sometime in the future. It will *not* free pixel's data by calling delete on the BITMAP pointer.

Just a note, you may be tempted to use a destructor do effect the above (as is done in C++ commonly), but this is a very big mistake.

And one other note -- delete will eventually be deprecated. In order to free memory, you must use clear and GC.free.

-Steve

Reply via email to