c语言一个函数如何返回一个二维数组指针
时间: 2024-03-20 17:43:27 浏览: 148
在C语言中,可以通过以下方式定义一个返回二维数组指针的函数:
```
int (**func())[n]
```
其中,n表示数组的列数。该函数的返回值是一个二维数组指针,指向一个数组,每个数组有n个元素,元素类型为int*。
以下是一个示例程序,演示了如何定义和使用一个返回二维数组指针的函数:
```
#include <stdio.h>
#include <stdlib.h>
int (**getArray())[3];
int main() {
int (**arr)[3] = getArray();
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", *arr[i][j]);
}
printf("\n");
}
return 0;
}
int (**getArray())[3] {
int (**arr)[3] = malloc(sizeof(int*[3]) * 2);
for (int i = 0; i < 2; i++) {
arr[i] = malloc(sizeof(int) * 3);
for (int j = 0; j < 3; j++) {
arr[i][j] = malloc(sizeof(int));
*arr[i][j] = i * 3 + j;
}
}
return arr;
}
```
在上面的例子中,函数getArray()返回一个二维数组指针,指向一个2行3列的数组。在主函数中,我们通过指针访问了数组元素,并输出了数组中的值。需要注意的是,在使用完数组后,需要释放内存,避免内存泄漏。
阅读全文