我不知道如何以一种好的方式将unsigned int数组转换为unsigned char数组。我想收到一些建议。
更清楚一点,我的问题是我有一个函数读取内存将数据放入unsigned int数组中。我想获取这些数据并转换为unsigned char以放入,例如,串口。
由于
答案 0 :(得分:0)
您可以按元素
使用uint数组元素for (i=0 ; i<arrayLength ; i++) processuChar((unsigned char) uintarray[i]);
或者你可以创建一个新数组并复制元素
unsigned int uintarray[N];
unsigned char uchararray[N];
for (i=0 ; i<N ; i++) uchararray[i] = (unsigned char)uintarray[i];
然后使用新的 uchararray 数组。
或者您更喜欢在复制之前动态分配新数组
unsigned char *uchararray = malloc(sizeof(unsigned char) * N);
for (i=0 ; i<N ; i++) uchararray[i] = (unsigned char)uintarray[i];
在这种情况下(动态),你不得不在不再需要时释放数组
free (uchararray);