| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 516 人关注过本帖
标题:一个奇怪的问题
取消只看楼主 加入收藏
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
一个奇怪的问题
今天调试一个程序的时候,发现有一条语句除了问题:一个unsigned char数组,8个元素,在程序中用scanf按16进制的格式读取数字进每一个元素(读取的数保证不大于FF),但是读取到第6或者第七个元素时,代表下标的变量就会被置0,导致程序无限循环。原本以为是溢出,但是无论数组开多大都不行,输入的数全为1不行,变量声明间又插进几个新变量也不行。不过先读取到一个int再赋值就可以,或者直接把数组声明改成int。但是理论上原先的做法没有问题啊,为什么会这样呢?
搜索更多相关主题的帖子: 声明 数字 元素 
2012-03-17 22:54
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 2楼 beyondyf
那么%x要求内存大于char的吗?

酱油实习生
2012-03-17 23:43
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
程序代码:
int i;
unsigned char keychar[8];
for (i = 0; i < 8; i++)
        scanf("%x", &keychar[i]);

酱油实习生
2012-03-18 00:33
快速回复:一个奇怪的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016232 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved