如何在 C 中正确地将 char* 复制到 unsigned char*。以下是我的代码
int main(int argc, char **argv)
{
unsigned char *digest;
digest = malloc(20 * sizeof(unsigned char));
strncpy(digest, argv[2], 20);
return 0;
}
我想正确地将 char* 数组复制到 unsigned char* 数组。我使用上面的代码收到以下警告
warning: pointer targets in passing argument 1 of âstrncpyâ differ in signedness
编辑:添加更多信息,我的要求是调用者在命令行上将 SHA 摘要作为字符串提供给主函数,并且主函数在内部将其保存在摘要中。SHA 摘要可以最好地使用无符号字符来表示。
现在的问题是我无法更改主函数的签名(** char),因为主函数解析它需要的其他参数为 char* 而不是 unsigned char*。