[問題] 如何發現存取越界? c/c++(V.S.)

看板Programming作者 (萌熊)時間7年前 (2017/04/16 01:30), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/1
各位好,最近有門課在用judge system,發現我常常會有存取越界的問題 但是在我的編譯軟體(visual studio 2015)上面會偵測不到這個問題, 我也有用系上的工作站(linux環境),直接用g++編譯後執行的話也沒有顯示存取越界 我想 既然judge可以找到這個問題 那在編譯軟體上面應該也可以......吧? 想問問看有沒有什麼方法可以幫助我找到哪邊有存取越界。 舉例來說: unsigned long long a[3]={1,2,3}; b=b/a[-1]; 今天遇到的大概是這樣的情況,我去追蹤,發現a是一個很大的正數, 在過程中是看不到他造成的影響,debug過程也沒有警告。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.91.189 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1492277454.A.12C.htmlmoebear:轉錄至看板 C_and_CPP 04/16 02:52

04/16 10:28, , 1F
試一下看有沒有std::array好用
04/16 10:28, 1F

04/16 10:28, , 2F
然後每次取元素不要用a[k] 要用a.at(k)
04/16 10:28, 2F

04/16 10:29, , 3F
不過這還滿好笑的 馬路就那麼寬 要開當
04/16 10:29, 3F

04/16 10:30, , 4F
然是自己注意車道線在哪裡 好像還沒聽
04/16 10:30, 4F

04/16 10:31, , 5F
過有人抱怨開出車道的時候馬路不會把他
04/16 10:31, 5F

04/16 10:31, , 6F
彈回去的 噗
04/16 10:31, 6F

04/16 11:59, , 7F
clang + scan-build ?
04/16 11:59, 7F

04/16 16:11, , 8F
這東西不會警告的 只會無預期當掉給你看
04/16 16:11, 8F
文章代碼(AID): #1OybZE4i (Programming)
文章代碼(AID): #1OybZE4i (Programming)