[code defect]evaluates to an address that could be at negative offset of an array

最近公司在扫code defect,自己负责的代码有报出问题,下面是code的sample
char str[10] = {0};
int i = 0;
for (i = 0; i < 10; i++) {
// str[i] evaluates to an address that could be at negative offset of an array.
str[i] = ‘c’;
}
自己研究了很长时间,也没有看出问题的地方,code运行了很长时间,也没有问题,i也不可能为负数呀。后来想到这只是code defect,不代表运行没有问题。数组的index应该always是正数,那就改了一版,如下:
char str[10] = {0};
unsigned int i = 0;
for (i = 0; i < 10; i++) {
// str[i] evaluates to an address that could be at negative offset of an array.
str[i] = ‘c’;
}
只需要将i从int改为unsigned int就可以了,之后再也没有报过类似的问题。
写出来的code运行没有error和code没有潜在风险是有区别的,如果想成为高级程序员,还是要积累这些代码的经验,你比别人高的地方就在于,你写的code问题少,稳定。别人遇到问题,你能马上解决,这就会成为别人心中的大牛了。养成好的的写代码习惯是非常必要的,改习惯确实是很难受的,尤其是被人review,认为自己的code能够正常运行,这是吹毛求疵,不可能出现reviewer说的问题,这一定是要改的。在review过程中成长,无论是被review,还是做reviewer。一定要虚心,切不能傲慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值