2016-11-26 4 views
0

나는 < openssl/sha.h>을 사용해야하는 C++ 프로젝트에서 일하고 있으며, 특히 SHA1 함수를 사용하고 있습니다.C++ cast char * to unsigned char

error: array initializer must be an initializer list or string literal 
const unsigned char message[] = argv[1]; 
        ^
: 내 문제는 함수가 서명 숯불 []를 수신한다, 내가 처리 매개 변수는 프로그램에 인수로 전달하는 데 필요한 다음

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

    unsigned char message[] = argv[1]; 

    /* program continues using message */ 

} 

내가 점점 오전 오류입니다

그래서 'message'변수에 인수 입력을 적절하게 캐스팅하지 않아서 SHA1 함수를 적절하게 호출 할 수 없습니다.

감사합니다.

답변

2

포인터를 사용하여 배열을 초기화 할 수 없습니다. 대체로 unsigned char *을 사용해야합니다.

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

이것은 완벽하게 작동했습니다. 대단히 감사합니다 !! – 9uzman7