c++難以發(fā)現(xiàn)的bug(有趣)
這些bug可能夠你喝一壺的。
1、被斷言(assert)包含的代碼
常發(fā)生在切換到release版本時,執(zhí)行結(jié)果乖乖的,最終查找結(jié)果是assert括號里的代碼在release下是不執(zhí)行的。
發(fā)現(xiàn):跟蹤,執(zhí)行不到代碼
2、對象成員數(shù)據(jù)錯亂了
基本是成員內(nèi)存上面的其他成員刪除時越界了。class foo{int arr[2];int val;}這種情況如果arr[2]=3;那么val的值會被改變。
發(fā)現(xiàn):內(nèi)存斷點
3、內(nèi)存泄漏
這些內(nèi)存掙脫了韁繩。
發(fā)現(xiàn):#include "crtdbg.h" 并且重載new,參考微軟文檔。linux下建議支持windows平臺,可以利用強大的開發(fā)工具。
總結(jié)
以上所述是小編給大家介紹的c++難以發(fā)現(xiàn)的bug(有趣),希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
C++實現(xiàn)LeetCode(200.島嶼的數(shù)量)
這篇文章主要介紹了C++實現(xiàn)LeetCode(200.島嶼的數(shù)量),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07

