首页 > 编程语言 > 详细

一个隐蔽的数组访问越界的问题(竟然纠结半小时,有可能是我水平太低了)

时间:2015-04-18 20:36:53      阅读:292      评论:0      收藏:0      [点我收藏+]

代码简化如下:

#include <iostream>

#include <string>

using namespace std;


int main()

{

   string str="Hello World!";

  int len = str.length();//获取长度

  for(int i=0;str[i]!=‘ ‘&&(i<len);++i);//遍历字符串中的每一个变量知道找到空格  就是在这一行调试时总是出现错误,原因是数组访问越界

  ......

}

红色一行的确越界了,原因是每次执行for内的判定条件时,先执行的 str[i]!=‘ ‘ ,这里就一定会发生越界。

要想不越界,可调换顺序 for(int i=0;(i<len)&&str[i]!=‘ ‘;++i)就可以了。

没想到这么小的问题,纠结了半个小时,所以写下来,加深印象,以期养成良好的代码习惯。


一个隐蔽的数组访问越界的问题(竟然纠结半小时,有可能是我水平太低了)

原文:http://blog.csdn.net/jason___bourne/article/details/45115807

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!