c语言二维指针分配内存空间
时间: 2023-10-26 21:21:34 浏览: 56
分配二维指针所需要的内存空间可以通过以下步骤实现:
1. 定义一个指向指针的指针。
```c
int **p;
```
2. 分配行指针数组的内存空间。
```c
p = (int **)malloc(row * sizeof(int *));
```
3. 分配列数组的内存空间。
```c
for (int i = 0; i < row; i++) {
p[i] = (int *)malloc(col * sizeof(int));
}
```
完整代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int row = 3, col = 4;
int **p;
p = (int **)malloc(row * sizeof(int *));
for (int i = 0; i < row; i++) {
p[i] = (int *)malloc(col * sizeof(int));
}
// 测试代码
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
p[i][j] = i * col + j;
printf("%d ", p[i][j]);
}
printf("\n");
}
// 释放内存
for (int i = 0; i < row; i++) {
free(p[i]);
}
free(p);
return 0;
}
```