c中使用malloc动态申请二维数组
前言今天写代码的时候,想要动态的申请一个二维数组空间,思索了一段时间才写出来,这里记录一下吧,以后就不至于再浪费时间了。下面以申请int型数组作为例子:
申请一维数组一维数组的数组名可以看成数组起始元素的首地址,因此我定义一个int *arr的指针,分配n个大小的int型空间,写法如下:
#include <stdio.h>#include <stdlib.h>int main(void){int i, row, column, **arr;while (scanf("%d %d", &row, &column) != EOF) {arr = (int **)malloc(sizeof(int *) * row); // 分配所有行的首地址for (i = 0; i < row; i ++) { // 按行分配每一列arr[i] = (int *)malloc(sizeof(int) * column);}free(arr);}return 0;}