c++函数返回时异常出错原因

不断的注释调试,发现分配一个字符数组

char msg[40];
sprintf(msg, "恭喜,突破历史记录,获得最高分%d!", nowScore);

 注释掉就不会出错,然后把msg长度设置为100就可以了,原因是字符串太长,函数内参数栈分配的存储空间不够,溢出导致的。。。

 

打印这个字符串长度

CCLog("%s length=%d", msg, strlen(msg));

 输出结果是

恭喜,突破历史记录,获得最高分11! length=50

 所以,就是栈溢出导致的函数返回错误。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章