问题描述
使用 Qt 5.8.0。
此代码按我的预期运行。
static const char mydata[] = {
0x1,0x2,0x3,0x4
};
QByteArray ba = QByteArray::fromRawData(mydata,sizeof(mydata));
const char *p = ba.constData();
const char *pp = QByteArray::fromRawData(mydata,sizeof(mydata)).constData();
qDebug("%p %p\n",p,pp);
输出
0x40f548 0x40f548
转储
p 0x01 0x02 0x03 0x04
pp 0x01 0x02 0x03 0x04
但是,我很难理解在使用 data() 而不是 constData() 之后这段代码会发生什么。
char *p = ba.data();
char *pp = QByteArray::fromRawData(mydata,sizeof(mydata)).data();
输出
0x166941e8 0x166f8e70
转储
p 0x01 0x02 0x03 0x04
pp 0xee 0xfe 0xee 0xfe 0xee 0xfe ... (should be 0x01 0x02 0x03 0x04 ?)