|
发表于 2020-11-2 16:45:30
|
显示全部楼层
本楼为最佳答案
本帖最后由 xieglt 于 2020-11-2 16:49 编辑
- //定义动态二维数组
- int ** matrix;
- //输入矩阵大小 M * N
- printf("Input the size of matrix M * N:\n");
- //scanf 格式是%d,%d,因此输入时请用逗号隔开,比如说 5,10
- scanf("%d,%d",&m,&n);
- //二维数组动态分配内存的方法
- //先 分配m个 int*
- matrix = (int*)malloc(m*sizeof(int *));
- //再为每一个 int* 分配 n 个 int
- for(i = 0 ; i < m ; i ++)
- {
- matrix[i] = (int *)malloc(n*sizeof(int));
- }
-
- //输入数据
- printf("Input %d * %d number:\n",m,n);
- for(i = 0 ; i < m ; i ++)
- {
- for(j = 0 ; j < n ; j ++)
- {
- scanf("%d",&matrix[i][j]);
- }
- }
-
- //释放内存
- for(i=0 ; i<m ; i++)
- {
- free(matrix[i]);
- }
- free(matrix);
复制代码 |
|