2016-11-26 70 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