#include<stdio.h> #include<malloc.h> #include<stdlib.h> void main() { int **a; int m,n; printf("请输入数组大小m行,n列\n"); scanf("%d %d",&m,&n); a = (int **)malloc(sizeof(int*)*m); //开辟行 if(NULL == a) { printf("开辟空间错误!\n"); exit(1); } for(int i=0; i<m; i++) { a[i] = (int*)malloc(sizeof(int)*n); //开辟列 if(NULL == a[i]) { printf("开辟空间错误!\n"); exit(1); } } for(i=0; i<m; i++) { for(int j=0; j<n; j++) { scanf("%d",&a[i][j]); } } for(i=0; i<m; i++) { for(int j=0; j<n; j++) { printf("%d ",a[i][j]); } printf("\n"); } for(i=0;i<n;i++) //释放空间时应从内往外释放 { free(a[i]); } free(a); }
时间: 2024-11-09 05:51:21