6

我有两个QByteArray和。sDatadData

我想将n字节从ie的位置复制xdDataie的&dData[x]位置ysData&sData[y]

在 C 中,数组复制由memcpy(&dData[x], &sData[y], n);

如何QByteArray在 Qt 中复制上述数据?

4

3 回答 3

6

Qt 文档中,您可以使用替换功能:-

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-01T08:44:39.803 回答
5

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

memcpy(dest.data() + y, src.constData() + x, n)
于 2014-04-01T10:17:23.027 回答
1

如果你想从索引零复制数据,有一个功能:

sData.setRawData(dData, n);
于 2016-09-21T12:32:35.743 回答