我正在为CCSprite使用双指针。对于指针指针,我正在做新的,然后创建然后使用cocos2d通常的方法创建 我应该如何在以下情况下删除双指针
CCSprite **mCBg;
mCBg = new CCSprite*[mNumberBackgound];
//for loop for creating sprites
mCBgLayer[i]= CCSprite::create("Sprites/level1.png");
由于Create会自动添加到内存池
使用“new”创建的对象怎么样如何在析构函数中删除它们
if(mCBg)
{
CC_SAFE_DELETE_ARRAY(mCBgLayer);
}
如果我这样做,我会在析构函数中崩溃 请给出解释说明。所以我可以理解cocos2d-x的内存管理
答案 0 :(得分:0)
Cocos2d-x使用Reference Count
和AutoReleasePool
来管理内存。
函数CCSprite::create()
的实现使用autorelease()
。您不需要释放内存,或者引用计数小于0;更多细节请参阅:
http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Reference_Count_and_AutoReleasePool_in_Cocos2d-x