我有两个QByteArray
和。sData
dData
我想将n
字节从ie的位置复制x
到dData
ie的&dData[x]
位置y
。sData
&sData[y]
在 C 中,数组复制由memcpy(&dData[x], &sData[y], n);
如何QByteArray
在 Qt 中复制上述数据?
我有两个QByteArray
和。sData
dData
我想将n
字节从ie的位置复制x
到dData
ie的&dData[x]
位置y
。sData
&sData[y]
在 C 中,数组复制由memcpy(&dData[x], &sData[y], n);
如何QByteArray
在 Qt 中复制上述数据?
从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);
除了给定的答案之外,您还可以使用memcpy
和QByteArray::data()
成员来获取指向内部数组的指针。当然,您有责任确保目标数组的大小足以容纳从源数组复制的所有数据。
memcpy(dest.data() + y, src.constData() + x, n)
如果你想从索引零复制数据,有一个功能:
sData.setRawData(dData, n);