2016-11-26 69 views
0

我在C++的工作项目中,我必须使用<的OpenSSL/sha.h>,我用特别的SHA1功能。我的问题是,该函数接收无符号的char []和我需要处理的参数作为参数传递给程序:C++铸造的char *为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函数。

谢谢!

回答

2

阵列不能从一个指针初始化。你应该使用unsigned char *来代替:

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

这工作完美!非常感谢你!! – 9uzman7