C语言中返回二维数组

2024年11月22日 08:45
有4个网友回答
网友(1):

如果是在main中动态获得数组的值,那么,最好在main里面创建数组,然后把数组传给fun进行修改,等fun返回以后,main获得的就是修改后的数组了。
void func(char array[1000][4])
{
    array[5][2] = 100;
}
main()
{
    char arr[1000][4];
    fun(arr);
}

网友(2):

arr是在运行栈上的,fun()执行完毕返回时,栈上的东西就都释放掉了。
所以要想返回二维数组,只能用malloc在堆上分配内存。

当然,调用fun()的函数要负责free释放内存。

网友(3):

#include 
////////////////////////////////////
//输入参数: i,j数组的下标
//输出:指定下标数组的值
////////////////////////////////////
char  * fun(int i,int j)
{
char  *arr[1000][4];
arr[0][0] ="wang";arr[0][1] ="hongw"; //你初始化一些数据

char *tmp;
tmp = arr[i][j] ;
return  tmp;
}

int main(void)
{
char  *value;
value = fun(0,0);
printf("%s",  value );
getchar();
return 0;
}

网友(4):

把fun()中的数组arr动态分配,然后返回其地址。main用完后释放空间。