c语言 把未知的二维数组初始化
时间: 2024-08-13 15:06:38 浏览: 46
在C语言中,初始化未知大小的二维数组(动态数组)通常使用指针和内存分配函数,如`malloc()`或`calloc()`,因为C语言的标准库不直接支持动态创建二维数组。以下是一个例子,展示了如何动态地创建和初始化一个未知大小的二维数组:
```c
#include <stdio.h>
#include <stdlib.h>
#define ROWS 3 // 行数
#define COLS 4 // 列数
// 动态创建二维数组的函数
void create_dynamic_array(int **array, int rows, int cols) {
*array = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
(*array)[i] = (int *)malloc(cols * sizeof(int));
}
}
// 初始化数组元素
void initialize_array(int **array, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
(*array)[i][j] = i * cols + j; // 这里只是一个示例,你可以替换为其他值
}
}
}
int main() {
int **dynamic_array;
create_dynamic_array(&dynamic_array, ROWS, COLS);
initialize_array(dynamic_array, ROWS, COLS);
// 打印初始化后的数组
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", dynamic_array[i][j]);
}
printf("\n");
}
// 清理内存
for (int i = 0; i < ROWS; i++) {
free(dynamic_array[i]);
}
free(dynamic_array);
return 0;
}
```
阅读全文