gpt4 book ai didi

c++ - 将 char 数组复制到字节数组中,而不仅仅是传递指针

转载 作者:行者123 更新时间:2023-11-30 01:03:40 25 4
gpt4 key购买 nike

我想将一个字符数组复制到一个 QByteArray。

函数:

char *tmpData = new char[64];
.....
msg->mBuffer = QByteArray::fromRawData(tmpData,msg->mBufferLen);
....
delete[] tmpData;

只是传递指针:

From Documentation: Constructs a QByteArray that uses the first size bytes of the data array. The bytes are not copied. The QByteArray will contain the data pointer.

在我删除 tmpData 后,QByteArray 指向的值消失了。如何使用 qt 工具制作拷贝?

最佳答案

来自QByteArray::QByteArray(const char*, int)构造函数文档,我们可以看到

QByteArray makes a deep copy of the string data.

相对于静态 QByteArray::fromRawData ,为此声明了以下语义:

Constructs a QByteArray that uses the first size bytes of the data array. The bytes are not copied.

因此,您应该能够通过以下方式获得数据的深拷贝

msg->mBuffer = QByteArray(tmpData, msg->mBufferLen);

在构建 msg->mBuffer 之后释放 tmpData 应该没问题。

关于c++ - 将 char 数组复制到字节数组中,而不仅仅是传递指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52605430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com