我有两个QByteArray,sData和dData。
我想将n字节从dData中的位置x,即&dData[x]复制到sData的位置y,即&sData[y]。
在C中,数组复制是由memcpy(&dData[x], &sData[y], n);完成的
如何在Qt中复制QByteArray的上述数据?
发布于 2014-04-01 16:44:40
在Qt documentation中,您可以使用replace函数:
QByteArray & QByteArray::replace(int pos, int len, const QByteArray & after)将从索引位置pos开始的len字节替换为后面的字节数组,并返回对此字节数组的引用。
因此,使用重载
QByteArray & QByteArray::replace(int pos, int len, const char * after);
sData = sData.replace(y, nBytes, dData.constData()+x);发布于 2014-04-01 18:17:23
除了给定的答案之外,您还可以使用memcpy和QByteArray::data()成员来获取指向内部数组的指针。当然,您需要确保目标数组的大小足以容纳所有从源数组复制的数据。
memcpy(dest.data() + y, src.constData() + x, n)发布于 2016-09-21 20:32:36
如果您想从索引0复制数据,有一个函数可以实现此目的:
sData.setRawData(dData, n);https://stackoverflow.com/questions/22780699
复制相似问题