QT二维数组char[][]初始化
时间: 2024-12-28 21:34:45 浏览: 3
在Qt中,二维字符数组`char`类型的`char[][]`可以通过几种方式进行初始化。这里我们通常会使用静态初始化、动态内存分配或者初始化列表。以下是几个例子:
1. **静态初始化**:
```cpp
// 直接指定大小并赋值
char (*array)[2] = {"Hello", "World"}; // 注意:需要声明数组的指针类型
// 或者创建固定大小的动态数组
char array2[2][5] = {
{'H', 'e', 'l', 'l', 'o'},
{'W', 'o', 'r', 'l', 'd'}
};
```
2. **动态内存分配**:
```cpp
int rows = 2, cols = 5;
char** dynamicArray = new char*[rows];
for (int i = 0; i < rows; ++i) {
dynamicArray[i] = new char[cols];
std::copy_n("Hello World"[i * cols], cols, dynamicArray[i]);
}
```
记得在不再需要这些动态内存时使用`delete[]`释放。
3. **初始化列表**:
```cpp
QVector<QByteArray> vector = {QByteArray("Hello"), QByteArray("World")}; // 使用容器
char* array3[vector.size()];
for (size_t i = 0; i < vector.size(); ++i) {
array3[i] = new char[vector[i].length() + 1]; // 留一个空格用于结束符'\0'
memcpy(array3[i], vector[i].constData(), vector[i].length());
array3[i][vector[i].length()] = '\0';
}
```
记得在循环结束后删除所有动态分配的部分。
阅读全文