C语言学习——二维数组动态分配

C语言的学习——二维数组的动态分配


要使用stdlib库,先分配行的大小,然后再循环分配每一列的大小。

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    
    
    int **a,i,j,n,m;
    scanf("%d%d",&n,&m);
    a = (int**)malloc(sizeof(int*)*n);	//为二维数组分配n行
    for (i = 0; i < n; i++){
    
    			//为每列分配m个大小
        a[i] = (int*)malloc(sizeof(int)*m);
    }
    for (i = 0; i < n; i++{
    
    				//初始化
        for (j = 0; j < m; j++){
    
    
           scanf("%d",&a[i][j])	;			
        }
    }
    
    for (i = 0; i < n; i++){
    
    		//释放内存
        free(a[i]);
    }
    free(a);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_45441354/article/details/102882555