码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-18 20:40:01      阅读:112      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!