C++ 将 char * 转换为 unsigned char

C++ cast char * to unsigned char

我在一个 c++ 项目中工作,我必须在其中使用 < 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];
                    ^

所以我没有将参数输入适当地转换为 'message' 变量,以适当地调用 SHA1 函数。

谢谢!!

无法从指针初始化数组。您应该改用 unsigned char *

unsigned char *message = reinterpret_cast<unsigned char *>(argv[1]);