在C语言中,可以使用指针和动态内存分配来动态创建二维数组。以下是一个示例代码:
#include#include 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函数动态分配内存来创建一个二维数组。接着初始化数组,并打印数组的值。最后,释放分配的内存。
需要注意的是,在动态创建二维数组时,需要手动释放分配的内存,以避免内存泄漏。