1、引擎版本:(cocos2d-x 2.2.6)
2、编译环境:(windows+vs 2012)
3、问题描述:
出现问题的代码:
CCSprite* arrowRest::detectNearestEnemy(){ auto instance=gameManager::getInstance(); CCArray eee=(instance->existEnemies); if (instance->existEnemies.count()==0) { return NULL; } for (int i=0;i<instance->existEnemies.count();i++) { auto enemy=(CCSprite*)instance->existEnemies.objectAtIndex(i); CCPoint enemyPos=convertToNodeSpace(enemy->getPosition());
} return (CCSprite*)(instance->existEnemies.objectAtIndex(0));
}
贴的代码不知道为什么都不换行的,我给个截图吧
其中instance->existEnemies 是CCArray 类型的类成员。
加多了第4行代码之后运行会报错,提示“0xC0000005: 读取位置 0xFEEEFEEE 时发生访问冲突。”
为什么只是简单的赋值语句,后面也没有对eee进行访问修改,会影响到原来的变量呢?
4、问题重现方式:
第一次进入detectNearestEnemy()没问题,错误发生在第二次进入detectNearestEnemy()函数。
5、截图: ![X}%0RUU$M]P4R2S0AZ`N{9X.png](http://cdn.cocimg.com/bbs/attachment/Fid_41/41_459288_7691516ac45f79f.png)