Как мне правильно скопировать char * в unsigned char * в C. Ниже приведен мой код
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
EDIT : Добавление дополнительной информации, Мое требование состоит в том, чтобы вызывающий предоставил дайджест SHA для основной функции в виде строки в командной строке, а основная функция внутренне сохранит его в переваривать. Дайджест SHA может быть лучше всего представлен с использованием беззнакового символа.
Теперь загвоздка в том, что я не могу изменить подпись основной функции (** char), потому что основная функция анализирует другие аргументы, которые ей требуются как char *, а не символ без знака *.