+ -
当前位置:首页 → 问答吧 → 怎么查找数据越界这种问题

怎么查找数据越界这种问题

时间:2010-06-30

来源:互联网

两个月前最开始写C/C++,出现过一两次数组越界,相当难查(可能我没有掌握好比较好的技巧),后来写习惯了,就很少出现越界了,即使出现也能很快找到...

这两天在Obj-C里面写,和C/C++混合开发,又出现了一次严重的数组越界问题,导致一个下午才找到问题出在什么地方.

是在汗颜....

我想知道,达人们,是怎么较好的防止数组越界问题??

作者: egmkang   发布时间: 2010-06-30



QUOTE:
两个月前最开始写C/C++,出现过一两次数组越界,相当难查(可能我没有掌握好比较好的技巧),后来写习惯了,就很少 ...
egmkang 发表于 2010-06-30 20:22




    这个全靠自觉,C 语言要求程序员自己小心,不然他死给你看。

作者: zhujiang73   发布时间: 2010-06-30

有一个很古老的检查工具叫做 Lint, 可以试试

作者: ypyf3000   发布时间: 2010-06-30

数组的上下边界各保留一个不用的元素,赋一个特殊值,如果发现被改掉了,那就是发生了越界写。不过跳着越界的情况此方法无效。

作者: 没本   发布时间: 2010-06-30

工具没用的,这个只有设计几个特定输入来猜猜

作者: A.com   发布时间: 2010-06-30

回复 A.com


    至少比人工检查高效得多

作者: ypyf3000   发布时间: 2010-06-30

工具能查得出来的就不是问题了,事实上有经验的测试人员很容易通过特定的输入猜到问题在哪里的,做这事我自己是深有体会的。

作者: A.com   发布时间: 2010-06-30

回复 A.com


    Lint的检查是在代码在编译之前进行的静态检查,至少能发现越界这种低级错误。

作者: ypyf3000   发布时间: 2010-06-30