不断的注释调试,发现分配一个字符数组
char msg[40];
sprintf(msg, "恭喜,突破历史记录,获得最高分%d!", nowScore);
注释掉就不会出错,然后把msg长度设置为100就可以了,原因是字符串太长,函数内参数栈分配的存储空间不够,溢出导致的。。。
打印这个字符串长度
CCLog("%s length=%d", msg, strlen(msg));
输出结果是
恭喜,突破历史记录,获得最高分11! length=50
所以,就是栈溢出导致的函数返回错误。