C加加中如何动态分配二维数组
时间: 2024-10-04 14:02:22 浏览: 33
在C++中,动态分配二维数组通常涉及到两个步骤:首先,你需要为每行分配内存,然后逐行分配。下面是一个例子,展示了如何为一个动态二维整型数组分配空间:
```cpp
#include <iostream>
int** createDynamicArray(int numRows, int numCols) {
// 动态分配每一行
int** array = new int*[numRows]; // 创建一个指针数组,大小为numRows
// 对于每行
for (int i = 0; i < numRows; ++i) {
// 使用new为当前行分配内存
array[i] = new int[numCols]; // 分配numCols个int类型的元素
}
// 返回二维数组的指针
return array;
}
void releaseArray(int** array, int numRows) {
// 释放每一行的空间
for (int i = 0; i < numRows; ++i)
delete[] array[i]; // 删除当前行
// 删除指针数组本身
delete[] array; // 确保内存完全释放
}
int main() {
int rows = 3, cols = 4;
int** dynamicArray = createDynamicArray(rows, cols);
// 使用动态数组
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
dynamicArray[i][j] = i * cols + j;
std::cout << dynamicArray[i][j] << " ";
}
std::cout << "\n";
}
releaseArray(dynamicArray, rows); // 释放内存
return 0;
}
```
在这个例子中,`createDynamicArray`函数负责动态分配,而`releaseArray`函数用于删除所分配的内存。
阅读全文