二维指针内存分配C语言
时间: 2023-10-29 14:12:48 浏览: 92
二维指针内存分配C语言的方法有多种,以下是两种常见的方法:
1. 使用一维数组模拟二维数组,然后使用二级指针访问这个一维数组。示例代码如下:
```c
int row = 3, col = 4;
int *arr = (int *)malloc(row * col * sizeof(int));
int **p = (int **)malloc(row * sizeof(int *));
for (int i = 0; i < row; i++)
p[i] = arr + i * col;
```
此时,p 就是一个指向二维数组的二级指针,可以使用 p[i][j] 访问第 i 行第 j 列的元素。
2. 使用嵌套的一级指针,逐层分配内存。示例代码如下:
```c
int row = 3, col = 4;
int **p = (int **)malloc(row * sizeof(int *));
for (int i = 0; i < row; i++)
{
p[i] = (int *)malloc(col * sizeof(int));
}
```
此时,p 就是一个指向二维数组的二级指针,可以使用 p[i][j] 访问第 i 行第 j 列的元素。需要注意的是,在使用完二维数组后,需要逐层释放内存,避免内存泄漏。
以上是二维指针内存分配的两种常见方法,具体使用哪种方法,取决于具体的需求和代码实现。
阅读全文