怎样将二维数组作为函数返回值并在主函数中调用

我的调用函数是这样的:
float(*TIME(float f_1[3][100]))[100]
{
for(i=0;i<=2;i++)
{
L_1[i][0]=-(a_1*f_1[i][0-3+100]+a_2*f_1[i][0-2+100]+a_3*f_1[i][0-1+100]+a_4*f_1[i][0]+a_5*f_1[i][0+1]+a_6*f_1[i][0+2]);
L_1[i][1]=-(a_1*f_1[i][1-3+100]+a_2*f_1[i][1-2+100]+a_3*f_1[i][1-1]+a_4*f_1[i][1]+a_5*f_1[i][1+1]+a_6*f_1[i][1+2]);
L_1[i][2]=-(a_1*f_1[i][2-3+100]+a_2*f_1[i][2-2]+a_3*f_1[i][2-1]+a_4*f_1[i][2]+a_5*f_1[i][2+1]+a_6*f_1[i][2+2]);
for(j=3;j<=99;j++)
{
L_1[i][j]=-(a_1*f_1[i][j-3]+a_2*f_1[i][j-2]+a_3*f_1[i][j-1]+a_4*f_1[i][j]+a_5*f_1[i][j+1]+a_6*f_1[i][j+2]);
}
}
return L_1;
}
在主函数中调用时,用的是:
float (*q)[100],(*s)[100];
*q=*TIME(&U_1[0][0]);*s=*time(&U_2[0][0]);
对二维数组作为指针的内容不是很会,还请各位大神指点

4个回答

可以主程序传传指针,函数去填充
也可以函数返回指针
但是推荐第一个办法,因为分配和释放都由主程序完成,不容易忘记。

需要主函数使用,就只能主函数分配二维数组的空间,然后把函数地址作为参数传递到函数,函数中直接通过指针修改二维数组内容。修改了,函数只用返回值表示是否修改成功,主函数根据返回值提示进行对应的操作

用二为维指针,返回char ** 类型就OK啦,注意分配空间

qq_27104447
qq_27104447 可以说的具体一点吗?不是很懂啊
5 年多之前 回复

把数组的地址传回去。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐