【发布时间】:2020-10-06 23:51:49
【问题描述】:
我正在尝试遍历单个 const unsigned char 数组并使用类型转换将每个元素分配/转换为新的 char 数组,我读过的每个线程都建议使用类型转换但是它对我不起作用,这是我的尝试:
#include <stdio.h>
#include <stdlib.h>
char *create_phone_number(const unsigned char nums[10]) {
char *new = malloc(11);
int i = 0;
for (; i<10; i++)
new[i] = (char)nums[i];
new[i] = '\0';
return new;
}
int main(void) {
char *num = create_phone_number((const unsigned char[]){ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 });
printf("%s\n", num);
free(num);
return 0;
}
以上代码的标准输出:
预期标准输出:
1111111111
如何将nums 中的元素转换为char 类型并将转换后的值分配/存储在new 数组中(高效)?
【问题讨论】:
标签: arrays c casting type-conversion unsigned-char