QByteArray变量的初始化赋值
时间: 2024-10-03 14:01:39 浏览: 29
QT5.1.1QbyteArray转int32
QByteArray在Qt中是一种用于表示二进制数据的动态数组,它的初始化赋值可以通过几种方式进行:
1. **空初始化**:
```cpp
QByteArray emptyArray;
```
2. **从字符串复制**:
```cpp
QByteArray stringToByteArray("Hello");
// 或者直接用字符串字面量:
QByteArray byteArray = "Hello";
```
3. **指定长度并填充特定字符**:
```cpp
QByteArray byteArray(10, '\0'); // 创建一个包含10个'\0'字符的数组
```
4. **从内存块拷贝**:
```cpp
char* memoryBlock = new char[10];
QByteArray fromMemory(memoryBlock, 10); // 会保留memoryBlock指向的那部分内存直到delete[] memoryBlock
```
5. **从另一个QByteArray或std::vector<char>复制**:
```cpp
QByteArray sourceArray; // 或 std::vector<char> sourceVector;
QByteArray newArray = sourceArray; // 或 QByteArray newArray(sourceVector);
```
6. **从文件读取**:
```cpp
QFile file("path_to_file");
if (file.open(QIODevice::ReadOnly)) {
QByteArray data = QByteArray::fromRawData(file.readAll());
file.close();
}
```
请注意,在使用完QByteArray后,确保正确释放资源,特别是通过拷贝初始化时,源对象的生命周期结束时不会自动释放。
阅读全文