作者moebear (萌熊)
看板Programming
标题[问题] 如何发现存取越界? c/c++(V.S.)
时间Sun Apr 16 01:30:51 2017
各位好,最近有门课在用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://webptt.com/cn.aspx?n=bbs/Programming/M.1492277454.A.12C.html
※ moebear:转录至看板 C_and_CPP 04/16 02:52
1F:→ MOONRAKER: 试一下看有没有std::array好用 218.161.46.90 04/16 10:28
2F:→ MOONRAKER: 然後每次取元素不要用a[k] 要用a.at(k) 218.161.46.90 04/16 10:28
3F:→ MOONRAKER: 不过这还满好笑的 马路就那麽宽 要开当 218.161.46.90 04/16 10:29
4F:→ MOONRAKER: 然是自己注意车道线在哪里 好像还没听 218.161.46.90 04/16 10:30
5F:→ MOONRAKER: 过有人抱怨开出车道的时候马路不会把他 218.161.46.90 04/16 10:31
6F:→ MOONRAKER: 弹回去的 噗 218.161.46.90 04/16 10:31
7F:推 CoNsTaR: clang + scan-build ? 114.32.240.238 04/16 11:59
8F:推 chchwy: 这东西不会警告的 只会无预期当掉给你看141.168.134.224 04/16 16:11