Как скопировать 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 * в массив без знака char *. Я получаю следующее предупреждение, используя приведенный выше код
warning: pointer targets in passing argument 1 of âstrncpyâ differ in signedness
EDIT: добавление дополнительной информации. Моим требованием является то, что вызывающий агент передает SHA-дайджест главной функции в виде строки в командной строке, а основная функция внутренне сохраняет ее в дайджесте. SHA-дайджест может быть наилучшим образом представлен с использованием unsigned char.
Теперь уловка заключается в том, что я не могу изменить подпись основной функции (** char), потому что основная функция анализирует другие аргументы, которые она требует как char *, а не unsigned char *.