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]);
我在一个 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]);