0

CCSprite にダブル ポインターを使用しています。ポインターへのポインターについては、私は新しいことを行っています。その後、cocos2d の通常のメソッド create を使用して作成し、次の場合にダブルポインターを削除するにはどうすればよいですか?

 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のメモリ管理が理解できる

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 に答える