根据(在 Qt 5.4 的 QDataStream 中)的文档readBytes()
,我希望以下代码将其复制input_array
到新分配的内存中并指向raw
副本:
QByteArray input_array{"\x01\x02\x03\x04qwertyuiop"};
QDataStream unmarshaller{&input_array, QIODevice::ReadOnly};
char* raw;
uint length;
unmarshaller.readBytes(raw, length);
qDebug() << "raw null? " << (raw == nullptr) << " ; length = " << length << endl;
...但是代码打印raw null? true ; length = 0
,表明没有从输入数组中读取任何字节。
为什么是这样?我在误解什么readBytes()
?