У меня есть следующий код. Он отлично работает, когда я использую массивы, я просто хочу реорганизовать его с помощью векторов, чтобы уменьшить размер моих хэшей.Передача вектора в функцию
uint8_t* rip(uint8_t *in, vector<uint8_t*> *out)
{
RIPEMD160(in, 32, out);
return out;
}
int main()
{
char pub_key[] = "0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6";
vector<uint8_t> res_rip(20);
uint8_t res_sha[32];
uint8_t res_tmp[65];
hex_decode(pub_key,131,res_tmp);
for(int i =0; i < 65; i++)
cout << setw(2) << setfill('0') << hex << (int)res_tmp[i];
cout << endl << endl;
sha(res_tmp,res_sha);
rip(res_sha,&res_rip);
for(int i =0; i < 32; i++)
cout << setw(2) << setfill('0') << hex << (int)res_sha[i];
cout << endl << endl;
for(int i =0; i < 20; i++)
cout << setw(2) << setfill('0') << hex << (int)res_rip[i];
return 0;
}
Я не уверен, как мне нужно передать вектор функции или что мне нужно сделать, чтобы правильно ее вернуть.
Я получаю сообщение компилятор error: cannot convert 'std::vector<unsigned char*>*' to 'unsigned char*' for argument '3' to 'unsigned char* RIPEMD160(const unsigned char*, size_t, unsigned char*)'
В какой строке это сообщение об ошибке? –
Также вы передаете 'vector *' функции, которая ожидает 'vector *'. –
milleniumbug