Search code examples
c++qtvectorqbytearray

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


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'

Solution

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

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