#include <stdio.h>
#include <stdlib.h>
//创建row行,col列的二维动态数组,返回其首地址
int **make2DArray(int row, int col)
{
int **a, i;
a = (int **)calloc(row, sizeof(int *));
for (i = 0; i < col; i++)
{
a[i] = (int *)calloc(col, sizeof(int));
}
return a;
}
//释放二维动态数组a的内存空间,row为二维数组的行数
void deliver(int **a, int row)
{
for (int i = 0; i < row; i++)
free(a[i]);
free(a);
}
int main(int argc, char *argv[])
{
int row, col, i, j, c = 1, **a = NULL;
scanf("%d%d", &row, &col);
a = make2DArray(row, col);
//赋值
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
a[i][j] = c++;
}
}
//输出
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
printf("%5d", a[i][j]);
}
puts("");
}
//释放空间
deliver(a, row);
return 0;
}