在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*。
b6379dab2c...
”)。对于此操作,使用char
类型完全可以。 - Oliver Charlesworth