0

我正在为 CCSprite 使用双指针。对于指向指针的指针我正在做 new 然后创建然后使用 cocos2d 常用方法 create 在以下情况下我应该如何删除双指针

 CCSprite **mCBg;

 mCBg = new CCSprite*[mNumberBackgound];

//for loop for creating sprites 
 mCBgLayer[i]= CCSprite::create("Sprites/level1.png");

由于 Create 会自动添加到内存池中

使用“新”创建的对象如何在析构函数中删除它们

 if(mCBg)
{
    CC_SAFE_DELETE_ARRAY(mCBgLayer);
}

如果我这样做,我会在析构函数中崩溃请给出解释并给出答案。这样我就可以理解cocos2d-x的内存管理了

4

1 回答 1

0

Cocos2d-x 使用Reference CountAutoReleasePool来管理内存。

使用的函数CCSprite::create()的实现autorelease()。不需要释放内存,否则引用计数会小于0;更多详情见: http: //www.cocos2d-x.org/projects/cocos2d-x/wiki/ Reference_Count_and_AutoReleasePool_in_Cocos2d-x

于 2013-01-11T06:32:29.733 回答