数组数据丢失

[复制链接]
 楼主| sjc_sugar 发表于 2011-12-22 09:06 | 显示全部楼层 |阅读模式
写了一个工程,定义缓存INT8U  TMP[]={0};INT8U  PRE[]={0};显示两位数据,在数组引用时如下赋值: 一个函数中TMP[0]=val2+48(转换ASCII码),TMP[1]=val1+48;另一个函数中PRE[0]=val2+48,PRE[1]=val1+48;发现TMP传递数据有丢失,显示不正常PRE显示正常;但如果定义INT8U TMP[]={0,0},数据全部显示正常,不理解出错原因,求解答或者提一些建议!谢谢!
ayb_ice 发表于 2011-12-22 10:06 | 显示全部楼层
越界了,不出问题才怪啊
icecut 发表于 2011-12-22 11:13 | 显示全部楼层
定义一个数数组存2个数...你 以为 一块钱能花2次?
第二个数必然覆盖下一个内存位置
liang7143 发表于 2011-12-22 12:31 | 显示全部楼层
INT8U  TMP[]={0};
很明显TMP数组长度为 1

INT8U TMP[]={0,0};
数组长度为 2

LZ自己掂量吧
 楼主| sjc_sugar 发表于 2011-12-23 10:38 | 显示全部楼层
3# wukunshan
我以为数组可以自己扩展,但是第二组数组显示正常,是偶然的么?
 楼主| sjc_sugar 发表于 2011-12-23 10:38 | 显示全部楼层
5# liang7143
我以为数组可以自己扩展,但是第二组数组显示正常,是偶然的么?
liang7143 发表于 2011-12-25 12:24 | 显示全部楼层
5# liang7143  
我以为数组可以自己扩展,但是第二组数组显示正常,是偶然的么?
sjc_sugar 发表于 2011-12-23 10:38


这个 不是偶然,是必然
一个函数中TMP[0]=val2+48(转换ASCII码),TMP[1]=val1+48;另一个函数中PRE[0]=val2+48,PRE[1]=val1+48;
这里可以看出
TMP只是操作到了TMP[1]
定义长度为2的数组 是没有问题的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

70

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部