极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18939|回复: 3

Arduino 中整型数组(int) 的一个bug 求高人解释

[复制链接]
发表于 2014-9-4 23:35:48 | 显示全部楼层 |阅读模式
最近在写一个机器人的控制程序,在设计的过程中用到了二维数组,debug了一天发现一个改正不了的bug,望高手指教。
本人编程小白一个,会一点C和C++。。
废话不多说,先上代码:


  1. int length[4][6]={0};

  2. void setup(){
  3.   Serial.begin(9600);
  4. }

  5. void setlength(){

  6. int n,m;
  7.   for (n=1;n<=4;n++){
  8.     for (m=1;m<=6;m++){
  9.       length[n][m]=1;
  10.     }
  11.   }
  12. }
  13. void send(){   //we shall first print the arrray on the screen
  14.   int n,m;
  15.   for (n=1;n<=4;n++){
  16.     for (m=1;m<=6;m++){
  17.       Serial.print(length[n][m]);
  18.       Serial.print(" ");
  19.     }
  20.     Serial.println("");
  21.   }
  22.   delay(1000);
  23. }
  24. void loop(){
  25.   setlength();
  26.   send();
  27. }
复制代码


照常理来说打开串口监视器看到的应该是
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
然而诡异的事情出现了



最后两行亮瞎狗眼。。
走投无路的我把数据类型改成了 float

  1. float length[4][6]={0};
复制代码


现在显示正常了



求大神指点!!
这段程序只是截取了一小部分,主程序有300+行,数组设计是用的整型的。
{:soso_e136:}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-9-5 00:02:54 | 显示全部楼层
本帖最后由 Super169 于 2014-9-5 00:06 编辑

程式可以執行, 已是你的好運了....

你知道  int length[4][6]  是什麼意思嗎?  

問題就在這裡:


  1.   for (n=1;n<=4;n++){
  2.     for (m=1;m<=6;m++){
  3.       length[n][m]=1;
  4.     }
  5.   }
复制代码


你知道執行  length[n][m]=1; 及 Serial.print(length[n][m]);   時, 當 n=4 或 m = 6 時有什麼後果嗎?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-5 00:30:49 | 显示全部楼层
弄明白了,,自己数组没学好。。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-5 00:31:35 | 显示全部楼层
Super169 发表于 2014-9-5 00:02
程式可以執行, 已是你的好運了....

你知道  int length[4][6]  是什麼意思嗎?  

明白了,自己查出来了。。。谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 16:34 , Processed in 0.036381 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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