How to convert std::vector<uint8_t> to QByteArray?

goGud picture goGud · Jun 29, 2015 · Viewed 10.2k times · Source

I am trying to create QByteArray from std::vector.. I tried;

std::vector<uint8_t> buf;
QByteArray img = new QByteArray(reinterpret_cast<const char>(buf), buf.size());

However it gives error;

error: invalid cast from type 'std::vector<unsigned char, std::allocator<unsigned char> >' to type 'const char'

Answer

m.s. picture m.s. · Jun 29, 2015

You need to cast buf.data() instead of buf:

QByteArray* img = new QByteArray(reinterpret_cast<const char*>(buf.data()), buf.size());