次のコードがあります。
QByteArray ba; // Declare Byte array
ba.clear(); // Clear it
ba.append(80, 0x00); // Append 80 bytes of 0x00
quint32 Count = 2; // The number we want to append to the byte array
QBuffer tempBuffer(&ba); // We use temporary buffer to conveniently put integers and floats into byte-array
tempBuffer.open(QIODevice::WriteOnly);
Count = qToLittleEndian(Count); // Make sure our number is little Endian
tempBuffer.write((char*)&Count, sizeof(quint32)); // Write the number to byte array
バイト配列の内容をコンソールに出力すると:
qDebug() << "ba: " << ba.toHex();
コンソールに次のように出力されます。
ba: "0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
上に見られるように、2
タイプquint32
の は、 のリトル エンディアン 16 進値で正しく表現されますが、バイト配列の末尾ではなく先頭0x02000000
に追加されます。バイト配列の末尾に値を追加するにはどうすればよいですか?