C语言函数中怎么返回一个二维数组

Python087

C语言函数中怎么返回一个二维数组,第1张

1、我们首先定义一个二级指针和一个行列变量[int ** array,row,column]。

2、然后我们编写进入行和列的语句,代码如图所示。

3、接下来我们可以用一维数组打开一维一维数组。

4、接下来,我们使用[array [i] =(int *)malloc(sizeof(int)* column)]来为数组再次生成包含该数组的新数组。

5、然后我们可以为它赋值并输出[代码如图所示]。

6、运行程序后我们可以看到这种效果。

你本身传递的就是数组,并不需要返回数组,直接在你的函数内更改二维数组的值的就行了(注意,如果在是函数内创建的数组,再返回会有问题,出了函数这个变量就无效了),比如如下

#include<stdio.h>

void fun(int (*pIntPtr)[4]) {

*(*pIntPtr + 0)=20//将a[0][0]改为20

*(*(pIntPtr+3) + 2)=30//将a[3][2]改为30

}

int main() {

int A[4][4] = {{10,2,3,1},{12,4,5,1},{14,7,8,1},{15,9,2,1}}

int i,j

fun(A)

for(i=0i<4i++)

{

for(j=0j<4j++) printf("%4d",A[i][j])

printf("\n")

}

}

C语言中函数不能直接返回一个二维数组。但是可以通过其他方法实现类似功能:

1、把二维数组定义为全局变量 这样可以直接在另一个函数中调用

2、把二维数组作为指针传入到第一个函数中 然后同样作为指针传到另一个函数中

3、动态分配内存 在赋值函数中动态分配 并用返回值返回,在另一个函数中进行访问