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、动态分配内存 在赋值函数中动态分配 并用返回值返回,在另一个函数中进行访问