QByteArray对象的不同生成方式,内存分配策略不同

用赋值构造函数出来的QByteArray对象的会新开辟内存会用存放数据,比如

const char * pTest = "testit";
//outArray数据存放地址和pTest指向的地位不同
QByteArray outArray = pTest;

而用QByteArray QByteArray::fromRawData ( const char * data, int size ) [static],生成的QByteArray对象的数据地址是共享data的数据地址的。如:

//outArray数据存放地址和pTest指向的地址相同
QByteArray outArray = QByteArray::fromRawData(pTest , strlen(pTest ));

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注