C ++将char *转换为unsigned char

时间:2016-11-26 16:16:16

标签: c++ casting 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];
                    ^

因此,我没有适当地投射“'消息”中的参数输入。变量,以适当调用SHA1函数。

谢谢!

1 个答案:

答案 0 :(得分:2)

无法从指针初始化数组。您应该使用unsigned char *代替:

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