在C語言中,可以使用指針和動(dòng)態(tài)內(nèi)存分配來動(dòng)態(tài)創(chuàng)建二維數(shù)組。以下是一個(gè)示例代碼:
#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);
// 分配內(nèi)存
int **arr = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
arr[i] = (int *)malloc(cols * sizeof(int));
}
// 初始化數(shù)組
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = i * cols + j;
}
}
// 打印數(shù)組
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
// 釋放內(nèi)存
for (int i = 0; i < rows; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
在這個(gè)示例中,首先用戶輸入行數(shù)和列數(shù),然后使用malloc函數(shù)動(dòng)態(tài)分配內(nèi)存來創(chuàng)建一個(gè)二維數(shù)組。接著初始化數(shù)組,并打印數(shù)組的值。最后,釋放分配的內(nèi)存。
需要注意的是,在動(dòng)態(tài)創(chuàng)建二維數(shù)組時(shí),需要手動(dòng)釋放分配的內(nèi)存,以避免內(nèi)存泄漏。