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