复制无符号字符数组

13

如何最好地将无符号字符数组复制到另一个数组?

例如:

unsigned char q[1000];
unsigned char p[1000];

strcpy (q,&p);

上述代码无法运行,它给我报错说“无法将参数1从unsigned char [1000]转换为char *”。


你确定你不是想给这个问题打上 c++ 标签而不是 c 吗?在 C 语言中,使用 strcpy 处理 unsigned char 数组(只要它们以空字符结尾)应该没有问题。最多只会有一个默认关闭的警告。 - R.. GitHub STOP HELPING ICE
3
无论是C还是C++,在这里使用&运算符都是一个错误。 - kuszi
1个回答

27

根据其名称所示,strcpy 适用于 C 字符串(而不是无符号字符数组)。

你应该考虑使用memcpy


1
你可以将 unsigned char* 强制转换为 char*。 - Engineer2021
你能提供一个小例子吗?我在使用memcpy将无符号字符变量复制到无符号字符数组时遇到了问题。出现了“传递参数2的‘memcpy’使指针从整数转换而来,没有强制转换[-Wint-conversion]”的错误提示。 - mLstudent33

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接