我有两个QByteArray
,sData
和dData
。
我想将n
字节从x
中的dData
位置&dData[x]
复制到y
的位置sData
,即{{1} }。
在C中,数组副本由&sData[y]
如何在Qt中复制memcpy(&dData[x], &sData[y], n);
的上述数据?
答案 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)
除了给定的答案,您还可以使用memcpy
和QByteArray::data()
成员来获取指向内部数组的指针。当然,您要负责的是目标数组的大小足以容纳来自源数组的所有复制数据。
memcpy(dest.data() + y, src.constData() + x, n)
答案 2 :(得分:3)
如果要从索引0复制数据,则有一个函数:
sData.setRawData(dData, n);