我有两个向量。
一个是我怎样才能memcpy布尔向量字符数组?
std::vector<unsigned char> one_v;
,另一个是
std::vector<bool> outputValuesInBits;
我推值两者one_v和outputValuesInBits。
两个矢量都有两个字节。
one_v [0]和[1]被填充2字节的数据。
outputValuesInBits [0]到[15]用2字节的数据填充。
现在,我想复制(memcpy)数据到char数组。
我可以成功地从one_v向量复制数据,如下所示。
unsigned char* output = new unsigned char[one_v.size()]();
memcpy(&output, one_v.data(), 2);
但我无法从outputValuesInBits复制数据。
如果我做如下,
unsigned char* output = new unsigned char[outputValuesInBits.size()/8+1]();
memcpy(&output, outputValuesInBits.data(), 2);
它给了我一个错误
error: invalid use of void expression
memcpy(&output, outputValuesInBits.data(), 2);
谁能告诉我如何我可以复制的布尔矢量字符数组?
预先感谢您!
”存储不一定是一个布尔值数组,但库实现可以优化存储,以便每个值都存储在一个位中。“ - http://www.cplusplus.com/reference/vector/vector-bool/ - 重点是你不能依赖布局。 – sje397