這些bug可能夠你喝一壺的。
1、被斷言(assert)包含的代碼
常發生在切換到release版本時,執行結果乖乖的,最終查找結果是assert括號里的代碼在release下是不執行的。
發現:跟蹤,執行不到代碼
2、對象成員數據錯亂了
基本是成員內存上面的其他成員刪除時越界了。class foo{int arr[2];int val;}這種情況如果arr[2]=3;那么val的值會被改變。
發現:內存斷點
3、內存泄漏
這些內存掙脫了韁繩。
發現:#include "crtdbg.h" 并且重載new,參考微軟文檔。linux下建議支持windows平臺,可以利用強大的開發工具。
總結
以上所述是小編給大家介紹的c++難以發現的bug(有趣),希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
新聞熱點
疑難解答