现在的位置: 首页 > 综合 > 正文

[排错记录] C++类成员变量Array莫名被改动,size大小变成非常大。

2013年09月18日 ⁄ 综合 ⁄ 共 380字 ⁄ 字号 评论关闭

表现

类成员CCArray array,在第一次循环中,size大小正常。

经过一段时间执行,再回到循环时,从调试提示数据看,发现size已经变乱码。

在几个出现array变量的代码片断下断点,发现并没有改动这段代码的地方。

环境

cocos2d-x,使用CCARRAY_FOREACH轶代。

问题

1、在VS2012调试环境中,看到线程一直是主线程。而且代码是cocos2d-x游戏引擎,并没开启线程。所以排除多线程问题。

2、对象属于类私有成员变量,非静态,其它类没有修改权限。

3、第二次循环这个数组,是在一个schedule回调中调度,猜想可能问题出在schedule调度。十分不解。

解决

CCArray即使作为在成员变量,也需要在创建之后retain一次。

Link : http://blog.sina.com.cn/s/blog_4ab2f5c801014kos.html

抱歉!评论已关闭.