// 编写一个程序,要求用户输入两个整数m和n,然后动态创建一个m行n列的二维整数数组。通过循环将数组的元素赋值为m行n列的连续整数。最后打印数组的内容。 #include #include int **create_nums_arr(int m, int n) { // 创建二维数组 int **nums_arr = (int **)malloc(m * sizeof(int *)); // 先给二维数组分配内存,每一行的内存在下面分配 if (NULL == nums_arr) { perror("malloc"); exit(-1); } for (int i = 0; i < m; i++) { nums_arr[i] = (int *)malloc(n * sizeof(int *)); // 给每一行分配内存 if (NULL == nums_arr[i]) { perror("malloc"); exit(-1); } } int i = 0; for (int j = 0; j < m; j++) { for (int k = 0; k < n; k++) nums_arr[j][k] = i++; // 从 0 开始赋值 } return nums_arr; // 返回二维数组 } int main() { int m, n; printf("请输入两个整数 m 和 n: "); scanf("%d%d", &m, &n); int **nums = create_nums_arr(m, n); // 创建二维数组 printf("二维数组的内容为: \n"); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) printf("%d ", nums[i][j]); printf("\n"); } // 释放内存 for (int i = 0; i < m; i++) { free(nums[i]); // 释放每一行的内存 } free(nums); // 再释放二维数组的内存 return 0; }