C语言怎么传入二维指针
时间: 2024-06-15 13:08:35 浏览: 17
在C语言中,传入二维指针可以通过以下方式实现:
1. 传入指向二维数组的指针:可以将二维数组的首地址传递给函数,函数参数声明为指向二维数组的指针。例如:
```c
void func(int (*arr)[n]) {
// 使用arr访问二维数组的元素
}
```
2. 传入指向指针数组的指针:可以将指向指针数组的指针传递给函数,函数参数声明为指向指针数组的指针。例如:
```c
void func(int **arr, int rows, int cols) {
// 使用arr访问二维数组的元素
}
```
3. 传入动态分配内存的二维指针:可以先动态分配内存给二维指针,然后将其传递给函数。函数参数声明为指向指针的指针。例如:
```c
void func(int **arr, int rows, int cols) {
// 使用arr访问二维数组的元素
}
int main() {
int rows = 3;
int cols = 4;
// 动态分配内存给二维指针
int **arr = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
arr[i] = (int *)malloc(cols * sizeof(int));
}
// 将二维指针传递给函数
func(arr, rows, cols);
// 释放内存
for (int i = 0; i < rows; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
```