我有两个QByteArray,sData而且dData.
我要复制n从位置字节x中dData,即&dData[x]以位置y的sData即&sData[y].
在C中,数组副本由.完成 memcpy(&dData[x], &sData[y], n);
如何复制以上数据QByteArray在Qt中完成?
从Qt文档中,您可以使用replace函数:-
QByteArray & QByteArray::replace(int pos, int len, const QByteArray & after)
Run Code Online (Sandbox Code Playgroud)
将索引位置pos中的len个字节替换为之后的字节数组,并返回对此字节数组的引用。
因此,使用重载
QByteArray & QByteArray::replace(int pos, int len, const char * after);
sData = sData.replace(y, nBytes, dData.constData()+x);
Run Code Online (Sandbox Code Playgroud)
除了给定的答案,您还可以使用memcpy和QByteArray::data()成员获取指向内部数组的指针.当然,您要负责的是目标数组的大小足以容纳源数组中的所有复制数据.
memcpy(dest.data() + y, src.constData() + x, n)
Run Code Online (Sandbox Code Playgroud)