C语言如何实现动态二维数组?
众所周知,C语言的动态内存分配是一大优势。定义数组的时候,数组的大小已经确定了,若要按照用户的需求来确定数组就要二维指针代替二维数组,代码如下。
#include <stdio.h>#include <stdlib.h>int main(){int **array,n,i,j;printf("请输入二维数组大小:\n");scanf("%d",&n);//分配二维指针(二维数组)的内存array = (int **)malloc(n * sizeof(int*));for(i = 0; i < n; i++){//分配一维指针(一维数组)的内存array[i] = (int*)malloc(n * sizeof(int));}getchar();// 赋值for(i = 0; i < n; i++){for(j = 0; j < n; j++){scanf("%d",&array[i][j]);}}// 输出for(i = 0; i < n; i++){for(j = 0; j < n; j++){printf("%d ",array[i][j]);}printf("\n");}return 0;}