С++ приведение char * к беззнаковому char

Я работаю над проектом С++, где мне приходится использовать ‹ openssl/sha.h>, и я использую, в частности, функцию SHA1. Моя проблема в том, что функция получает unsigned char[], и мне нужно получить обработанные параметры, переданные в качестве аргументов программе:

int main(int argc, char* argv[])
{

  unsigned char message[] = argv[1];

  /* program continues using message */

}

И ошибка, которую я получаю, следующая:

error: array initializer must be an initializer list or string literal
const unsigned char message[] = argv[1];
                    ^

Поэтому я не могу правильно передать аргумент, вводимый в переменную «сообщение», чтобы сделать соответствующий вызов функции SHA1.

Спасибо!!


person 9uzman7    schedule 26.11.2016    source источник


Ответы (1)


Массив не может быть инициализирован указателем. Вместо этого вам, вероятно, следует использовать unsigned char *:

unsigned char *message = reinterpret_cast<unsigned char *>(argv[1]);
person Sam Varshavchik    schedule 26.11.2016