0

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

更清楚地说,我的问题是我有一个函数可以读取内存,将数据放入无符号整数数组中。我想获取这些数据并转换为 unsigned char 以放入,例如串行端口。

谢谢

4

1 回答 1

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);
于 2013-05-21T16:04:40.773 回答