智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2911|回复: 13
打印 上一主题 下一主题

数组越界问题 subscript out of range

[复制链接]

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7499
威望
5069
贡献
1876
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
跳转到指定楼层
1#
发表于 2015-3-6 19:23:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
int16 me_ccd_sign_0[128] = {0};  
int16 me_ccd_sign_1[128] = {0};   
int16 me_ccd_sign_2[128] = {0};   

main()
{
  int16 a = 128;  
  while(a--)
  {
    me_ccd_clk_out(0);
    me_ccd_sign_0[127-a] = adc_once(me_ccd_sign,ADC_10bit);      //10位精度
    me_ccd_delay(1);

  }
me_ccd_sign_2[128] = me_ccd_sign_1[128];
  me_ccd_sign_1[128] = me_ccd_sign_0[128];
}


代码如上
为何在红字部分提示subscript out of range???

回复

使用道具 举报

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7499
威望
5069
贡献
1876
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
14#
 楼主| 发表于 2015-3-6 20:48:47 | 只看该作者
zhou1994 发表于 2015-3-6 20:47
还好我在看电影,心情不错



哈哈   不抓紧做车么  怎么还看电影?坐等国特了?
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
13#
发表于 2015-3-6 20:47:30 | 只看该作者
板正的 发表于 2015-3-6 20:34
哈哈   我明白你说的意思了

还好我在看电影,心情不错
回复 支持 反对

使用道具 举报

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7499
威望
5069
贡献
1876
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
12#
 楼主| 发表于 2015-3-6 20:37:38 | 只看该作者
zhou1994 发表于 2015-3-6 20:28
me_ccd_sign_2[128] = me_ccd_sign_1[128];
me_ccd_sign_1[128] = me_ccd_sign_0[128];
你这明明是128啊 ...

等会儿通知版主把这个帖子删了吧,让人看了笑话、、、、、、
回复 支持 反对

使用道具 举报

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7499
威望
5069
贡献
1876
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
11#
 楼主| 发表于 2015-3-6 20:34:02 | 只看该作者
zhou1994 发表于 2015-3-6 20:28
me_ccd_sign_2[128] = me_ccd_sign_1[128];
me_ccd_sign_1[128] = me_ccd_sign_0[128];
你这明明是128啊 ...

哈哈   我明白你说的意思了


是我弄错了

我原意是:将数组0是最新采集的数,然后数组0的数给数组1,将数组1的数给数组2,从而得到三个数组,目的是进行简单的滤波,(以前的简单滤波就是这样滚动赋值,但是那时候是数而不是数组)。我想讲数组0直接给数组1,所以就把他的名字直接赋值了me_ccd_sign_1[128] = me_ccd_sign_0[128];  所以才犯了这种低级错误。。。




谢谢你的解答




哈哈  我估计你刚才抓狂了    唉   自己钻到牛角尖里了。。。
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
10#
发表于 2015-3-6 20:28:54 | 只看该作者
板正的 发表于 2015-3-6 20:20
刚才打错了   最后一个数是127,刚刚发现改过来了。

既然while最后一个是127,为什么会溢出?给127赋值 ...

me_ccd_sign_2[128] = me_ccd_sign_1[128];
me_ccd_sign_1[128] = me_ccd_sign_0[128];
你这明明是128啊,你要是不懂,就多看看,不然到后面,估计你看不懂的地方还多
回复 支持 反对

使用道具 举报

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7499
威望
5069
贡献
1876
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
9#
 楼主| 发表于 2015-3-6 20:20:38 | 只看该作者
zhou1994 发表于 2015-3-6 20:18
。。。我真的快无语了。while循环最后一个是127,这就是数组的最后一个数了,后来怎么就成128了。我建议你 ...

刚才打错了   最后一个数是127,刚刚发现改过来了。

既然while最后一个是127,为什么会溢出?给127赋值难道不对么?

也是找了C语言书看这个部分,但是还是没想明白。。。。
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
8#
发表于 2015-3-6 20:18:41 | 只看该作者
板正的 发表于 2015-3-6 20:12
到最后一次while循环时,a=1,此时进入循环,a=0,所以127-a还是127,就是说这个数组的最后一个数是me_cc ...

。。。我真的快无语了。while循环最后一个是127,这就是数组的最后一个数了,后来怎么就成128了。我建议你去复习一下你的c语言,自然就懂了。
回复 支持 反对

使用道具 举报

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7499
威望
5069
贡献
1876
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
7#
 楼主| 发表于 2015-3-6 20:12:12 | 只看该作者
本帖最后由 板正的 于 2015-3-6 20:18 编辑
zhou1994 发表于 2015-3-6 20:03
me_ccd_sign_2[128] = me_ccd_sign_1[128];
me_ccd_sign_1[128] = me_ccd_sign_0[128];
这两句。你要把 ...

到最后一次while循环时,a=1,此时进入循环,a=0,所以127-a还是127,就是说这个数组的最后一个数是me_ccd_sign_0[127].
回复 支持 反对

使用道具 举报

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7499
威望
5069
贡献
1876
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
6#
 楼主| 发表于 2015-3-6 20:09:47 | 只看该作者
zhou1994 发表于 2015-3-6 20:03
me_ccd_sign_2[128] = me_ccd_sign_1[128];
me_ccd_sign_1[128] = me_ccd_sign_0[128];
这两句。你要把 ...

不好意思  还是没看懂。。。

为什么128已经溢出呢?

麻烦再给讲一下吧  谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-1-6 14:12 , Processed in 0.083268 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表