在C语言中,可以使用指针和动态内存分配来动态创建二维数组。以下是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
int rows, cols;
printf("Enter number of rows: ");
scanf("%d", &rows);
printf("Enter number of columns: ");
scanf("%d", &cols);
// 分配内存
int **arr = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
arr[i] = (int *)malloc(cols * sizeof(int));
}
// 初始化数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = i * cols + j;
}
}
// 打印数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
// 释放内存
for (int i = 0; i < rows; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
在这个示例中,首先用户输入行数和列数,然后使用malloc函数动态分配内存来创建一个二维数组。接着初始化数组,并打印数组的值。最后,释放分配的内存。
需要注意的是,在动态创建二维数组时,需要手动释放分配的内存,以避免内存泄漏。