C语言,以维度不确定的二维数组为输入的函数
时间: 2024-09-09 18:02:06 浏览: 38
在C语言中,函数接收不确定维度的二维数组作为输入,通常需要传递额外的参数来指定数组的行数和列数。这是因为C语言在编译时就需要知道数组的维度信息,除非使用指针数组和动态内存分配等高级特性。以下是一个接收不确定维度二维数组的函数示例:
```c
#include <stdio.h>
void printMatrix(int **matrix, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
// 假设我们有一个动态分配的二维数组
int rows = 3;
int cols = 4;
int **matrix = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
matrix[i] = (int *)malloc(cols * sizeof(int));
for (int j = 0; j < cols; j++) {
matrix[i][j] = i * cols + j; // 初始化数组值
}
}
// 调用函数打印二维数组
printMatrix(matrix, rows, cols);
// 清理分配的内存
for (int i = 0; i < rows; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}
```
这个例子中,`printMatrix` 函数接收一个指向指针的指针(`int **matrix`),它代表一个二维数组,以及两个整数参数 `rows` 和 `cols` 分别表示数组的行数和列数。在函数内部使用嵌套循环遍历数组并打印每个元素。
阅读全文