在C語言中,定義一個二維動態數組可以使用指針的指針來實現。下面是一個示例代碼:
#include <stdio.h>
#include <stdlib.h>
int main() {
int rows, cols;
printf("請輸入二維數組的行數和列數:\n");
scanf("%d", &rows);
scanf("%d", &cols);
// 動態分配內存空間
int **arr = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
arr[i] = (int *)malloc(cols * sizeof(int));
}
// 輸入數組元素
printf("請輸入二維數組的元素:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
scanf("%d", &arr[i][j]);
}
}
// 輸出數組元素
printf("二維數組的元素為:\n");
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
函數動態分配了一塊內存空間用于存儲二維數組。然后,使用兩個for循環來依次輸入二維數組的元素。最后,使用兩個for循環將二維數組的元素輸出到屏幕上。最后,使用free
函數來釋放動態分配的內存空間。