我不知道如何以一种好的方式将 unsigned int 数组转换为 unsigned char 数组。我想收到一些建议。
更清楚地说,我的问题是我有一个函数可以读取内存,将数据放入无符号整数数组中。我想获取这些数据并转换为 unsigned char 以放入,例如串行端口。
谢谢
我不知道如何以一种好的方式将 unsigned int 数组转换为 unsigned char 数组。我想收到一些建议。
更清楚地说,我的问题是我有一个函数可以读取内存,将数据放入无符号整数数组中。我想获取这些数据并转换为 unsigned char 以放入,例如串行端口。
谢谢
您可以逐个元素地使用 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);