打印
[嵌入式linux]

编写小程序遇到不解的问题求解

[复制链接]
1432|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qq602828308|  楼主 | 2014-5-12 20:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C:\Users\Administrator\Desktop小弟新手一枚,在做项目的时候在一个小程序上遇到了些问题。程序如下!
u8 table[]= {0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xfe};
void SendString(u8 *str)        
{           static u8 x=0;       
       printf("\n\r\n ");
         while(*str)
         {
//                                 LcmWrDat(*str)        ;       
                                 x++;
                                 
                 printf("0x%x第%d字节",*str,x);
                 printf("\n\r\n ");
                                 str++;
//                                 if(*str==2)  break;
         }
输出结果为下。
0xff第1字节

0xf9第2字节

0xff第3字节

0xff第4字节

0xff第5字节

0xff第6字节

0xff第7字节

0xff第8字节

0xf第9字节

0xfe第10字节

0x2第11字节

0x4第12字节

0x6第13字节

0x8第14字节
我一直认为只会输出数组的数字,但是没想到2,4,8,这些数字从哪里来的!很是不解,特求神坛大神点化!谢过了!

相关帖子

沙发
wowotoulovekk| | 2014-5-17 10:49 | 只看该作者
C语言基础有问题,对于字符串的循环操作,通常是以0为结束符标志的。这儿你循环判断的条件已经错误了。导致内存越界访问。引发不可预知问题。

使用特权

评论回复
板凳
qq602828308|  楼主 | 2014-5-19 10:27 | 只看该作者
dwh000 发表于 2014-5-14 19:47
你采用指针的方式输出数组,从第11个字节开始指针越界了,而后续的内存正好是2,4,6,8,等值再下一个值应该是0, ...

多谢了!

使用特权

评论回复
地板
qq602828308|  楼主 | 2014-5-19 10:28 | 只看该作者
dwh000 发表于 2014-5-14 19:50
while(*str)来控制循环一般都是输出字符串的,因为字符串的结尾为0.
用来连续输出数组,结果肯定是不可预知的 ...

这位仁兄这样一讲,小弟真是醍醐灌顶啊:D

使用特权

评论回复
5
qq602828308|  楼主 | 2014-5-19 10:29 | 只看该作者
wowotoulovekk 发表于 2014-5-17 10:49
C语言基础有问题,对于字符串的循环操作,通常是以0为结束符标志的。这儿你循环判断的条件已经错误了。导致 ...

小弟C基础确实不扎实,多谢提醒了哦!

使用特权

评论回复
6
qq602828308|  楼主 | 2014-5-19 11:20 | 只看该作者
void SendString(u8 *str)        
{           static u8 x=0;       
       u8 i=40;
         while(i--)
         {                 printf("\n\r\n ");
                                 LcmWrDat(*str)        ;printf("第%d字节为0x%x",x,*str);       
                                 x++;
                                 str++;
                                 
//                                 if(*str==2)  break;
         }

}
这样成功解决问题!多谢了兄台们!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

11

帖子

1

粉丝