QbyteArray数据副本

时间:2014-04-01 08:36:54

标签: qt qbytearray

我有两个QByteArraysDatadData

我想将n字节从x中的dData位置&dData[x]复制到y的位置sData,即{{1} }。

在C中,数组副本由&sData[y]

完成

如何在Qt中复制memcpy(&dData[x], &sData[y], n);的上述数据?

3 个答案:

答案 0 :(得分:5)

Qt documentation,您可以使用替换功能: -

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);

答案 1 :(得分:4)

除了给定的答案,您还可以使用memcpyQByteArray::data()成员来获取指向内部数组的指针。当然,您要负责的是目标数组的大小足以容纳来自源数组的所有复制数据。

memcpy(dest.data() + y, src.constData() + x, n)

答案 2 :(得分:3)

如果要从索引0复制数据,则有一个函数:

sData.setRawData(dData, n);