标题:
C语言赋值数组某一位问题
[打印本页]
作者:
234134519
时间:
2022-9-29 22:02
标题:
C语言赋值数组某一位问题
unsigned char UDM[8]={0x5A,0xA5,0x05,0x82,0x50,0x00,0x00,0x00};
unsigned char save_buf[44]; //存放的是EEPROM数据
如何将UDM[5] 每次+5 //存放的是地址
将UDM[6] = save_buf[0]; UDM[7] = save_buf[1];
这样一次赋值下去 将save_buff[44]个数值全部赋值完毕
我用的是
for(i=0;i<44;i++)
{
UDM[5] = UDM[5]+i*5;
UDM[6] = save_buf[ i];
UDM[7] = save_buf[i+1];
PrintArray4(UDM, 8); //将数发送给串口屏
}
得到的数据是不正确地 还望各位能再指导一下 是哪里错了,或者有没有更好的方法,感谢
作者:
simple_tt
时间:
2022-9-30 08:30
是要把save_buf[44]每两个赋值给UDM[6]和UDM[7]吧,你这个明显i=43时数组越界了
作者:
yzwzfyz
时间:
2022-9-30 08:31
把得到的显示出示看看。
作者:
黄youhui
时间:
2022-9-30 08:58
UDM[5] = UDM[5]+i*5;这不是累加吗?
i = 0; UNM[i] = 0 + 0;
i = 1; UNM[i] = 0 + 5;
i = 2; UNM[i] = 5 + 10;
i = 3; UNM[i] = 15 + 15;
i = 4; UNM[i] = 35 + 20;
作者:
pdwdzz
时间:
2022-9-30 10:41
UDM[5] = UDM[5]+i*5;不是每次加5,UDM[5] +=5;才是。另外i>42时数组溢出。
作者:
xxxevery
时间:
2022-9-30 21:43
本帖最后由 xxxevery 于 2022-10-1 21:26 编辑
楼主是不是想发这样的数据:{0x5A,0xA5,0x05,0x82,0x50,0x00,save_buf[0],save_buf[1]};
{0x5A,0xA5,0x05,0x82,0x50,0x05,save_buf[2],save_buf[3]};
{0x5A,0xA5,0x05,0x82,0x50,0x0A,save_buf[4],save_buf[5]};
......
那程序我觉得这样改
for(i=0;i<22;i++)
{
UDM[5] =i*5;
UDM[6] = save_buf[ i*2];
UDM[7] = save_buf[i*2+1];
PrintArray4(UDM, 8); //将数发送给串口屏
}
请参考
作者:
lkc8210
时间:
2022-9-30 21:47
for(i=0;i<22;i++)
{
UDM[5] = UDM[5]+i*5;
UDM[6] = save_buf[ i*2];
UDM[7] = save_buf[(i*2)+1];
PrintArray4(UDM, 8); //将数发送给串口屏
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1