c++函數返回時異常出錯原因

不斷的註釋調試,發現分配一個字符數組

char msg[40];
sprintf(msg, "恭喜,突破歷史記錄,獲得最高分%d!", nowScore);

 註釋掉就不會出錯,然後把msg長度設置爲100就可以了,原因是字符串太長,函數內參數棧分配的存儲空間不夠,溢出導致的。。。

 

打印這個字符串長度

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

 輸出結果是

恭喜,突破歷史記錄,獲得最高分11! length=50

 所以,就是棧溢出導致的函數返回錯誤。

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