我有兩個向量。
一個是我怎樣才能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