又遇未初始化

又遇到了變量沒有初始化導致的bug,又是那麼隱晦,又是那麼難找,不過最終還是被揪出來了:D 是這個樣子的:遊戲中有些特效,偶爾會出現不消失的情況,概率很小;但是一旦在一臺機器上出現,那麼之後出現的概率就相當高。。

原因是這個樣子的:某個相關的變量沒有初始化——策劃同學提了需求之後,沒及時配置相關參數,而程序這邊又沒給初值。這個變量取值很大的時候會導致特效不消失;因爲是release版本,下次啓動時,該變量仍然被分配到了上次的內存空間,仍然是上次的值。這樣一旦出了問題,那麼下次,下下次,下下次,仍然有很高的概率會出現同樣的問題。

經驗足夠的話,從bug的表現上面能夠猜出大概是什麼原因;但是我是費了好大勁,從邏輯方面下手,一層層追溯得到的答案。懶得吐槽了,還是希望各位同學今後一定要記得變量初始化。

上次的文章。最後推薦一個源碼級檢查內存泄漏,未初始化的工具:Cppcheck


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