从unsigned int数组转换为unsigned char数组

时间:2013-05-21 16:00:22

标签: c unsigned-integer unsigned-char

我不知道如何以一种好的方式将unsigned int数组转换为unsigned char数组。我想收到一些建议。

更清楚一点,我的问题是我有一个函数读取内存将数据放入unsigned int数组中。我想获取这些数据并转换为unsigned char以放入,例如,串口。

由于

1 个答案:

答案 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);