Учитывая ZeroMQ сообщение, полученное таким образом:Получить ZeroMQ данные сообщения в станд :: вектор <char>
zmq_msg_t messageIn;
int rc = zmq_msg_init(&messageIn);
rc = zmq_msg_recv(&messageIn, socket, 0);
Я хотел бы получить доступ к входящие данные сообщения и хранить его в;
std::vector<char> inMsg;
Попытка этого;
std::memcpy(&inMsg, zmq_msg_data(&messageIn), zmq_msg_size(&messageIn));
Не работает. Может ли кто-нибудь предложить предложения о том, как достичь этого?
'memcpy' используя inMsg адрес, очевидно, не делать то, что вы хотите, потому что это не указывает на хранение. Рави ответил на ваш вопрос. используя полученный msg_str, вы можете перебирать символы, используя 'msg_str.begin()' и 'end()'. Если вы не хотите использовать 'std :: string', вы можете просто использовать массив. 'char * inMsg = new char [zmq_msg_size (& messageIn);' then 'memcpy' в этот массив, как вы это делали. –