动态内存开辟二维数组
时间: 2023-12-09 22:27:41 浏览: 35
动态内存开辟二维数组可以使用指针数组的方式进行。下面是一个示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#define ROW 5
#define COLUMN 5
int main() {
int i, j;
int **array = (int **)malloc(sizeof(int *) * ROW);
for (i = 0; i < ROW; i++) {
array[i] = (int *)malloc(sizeof(int) * COLUMN);
}
// 对数组进行操作
for (i = 0; i < ROW; i++) {
for (j = 0; j < COLUMN; j++) {
// 可以通过array[i][j]来访问二维数组中的元素
array[i][j] = i * COLUMN + j;
}
}
// 释放内存
for (i = 0; i < ROW; i++) {
free(array[i]);
}
free(array);
return 0;
}
```
在这个示例代码中,我们首先使用`malloc`函数动态分配了一个指针数组`array`,它包含了`ROW`个指针。然后,我们遍历`array`,为每一个指针分配了一个`COLUMN`个整数的内存空间。接着,我们可以通过`array[i][j]`来访问和操作二维数组中的元素。
最后,我们需要记得释放动态分配的内存。先释放每一个指针指向的内存空间,再释放指针数组本身的内存空间。