c语言动态申请二维数组
时间: 2023-10-26 08:19:45 浏览: 342
详解C语言用malloc函数申请二维动态数组的实例
5星 · 资源好评率100%
在C语言中,动态申请二维数组需要使用指针和malloc函数,具体步骤如下:
1. 声明一个指向指针的指针,用于存储动态申请的二维数组的首地址。
2. 使用malloc函数申请内存空间。由于二维数组是由多个一维数组组成的,所以需要分别申请每个一维数组的内存空间。
3. 对申请的内存空间进行初始化。
下面是示例代码:
```c
int main() {
int **p; // 声明一个指向指针的指针
int i, j, rows, cols;
printf("请输入二维数组的行数和列数:");
scanf("%d%d", &rows, &cols);
// 动态申请一维数组的内存空间
p = (int **)malloc(rows * sizeof(int *));
for (i = 0; i < rows; i++) {
p[i] = (int *)malloc(cols * sizeof(int));
}
// 对申请的内存空间进行初始化
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
p[i][j] = i * j;
}
}
// 输出二维数组的值
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
printf("%d ", p[i][j]);
}
printf("\n");
}
// 释放申请的内存空间
for (i = 0; i < rows; i++) {
free(p[i]);
}
free(p);
return 0;
}
```
上面的代码中,首先声明了一个指向指针的指针p,用于存储动态申请的二维数组的首地址。然后通过输入行数和列数,使用malloc函数分别申请每个一维数组的内存空间,并对申请的内存空间进行初始化。最后输出二维数组的值,再释放申请的内存空间。
阅读全文