在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函數動態分配內存來創建一個二維數組。接著初始化數組,并打印數組的值。最后,釋放分配的內存。
需要注意的是,在動態創建二維數組時,需要手動釋放分配的內存,以避免內存泄漏。