Map连续两次同一地址存储对象时报错!!

DjScene.h里定义一个Map数组

Map m_mCardList;         //卡牌数组

```



DjScene.cpp调用两次test,往Map里插入数据
void DjScene::test(){
    m_mCardList.insert(0,Card::createCard(Sprite::create(), Sprite::create(), Sprite::create()));
}

```



 //Card继承Button类,这些Sprite是牌的背景、花色、数字等...        
Card* Card::createCard(Sprite* whiteBg, Sprite*landBg, Sprite*bigFlag,Sprite* smallFlag,  Sprite* num){
    auto card = (Card*)Card::create();
    card->m_sWhiteBg = whiteBg;
    card->addChild(whiteBg);
       .....
       ......
      .......
    return card;
}

```



连续调用两次test,则报错:
HEAP: Heap block at 053D3E30 modified at 053D4288 past requested size of 450

Card* Card::createCard(Sprite* whiteBg, SpritelandBg, SpritebigFlag,Sprite* smallFlag, Sprite* num){
auto card = (Card*)Card::create();
card->retain();
card->m_sWhiteBg = whiteBg;
card->addChild(whiteBg);



return card;
}

我考。我知道原因了。要手动retain一次,不然运行中会有错误。。

随带说一下这个错误在vs下编译才会报出来。在cocos studio下运行不会报错。