一个关于C语言函数参数和返回值的问题,求大神解答。 50
1.在一个函数中声明并且初始化一个结构体的数组,如何让函数返回这个数组。2.如何让一个结构体的数组作为参数传给一个函数。3.在一个函数中声明并且初始化一个结构体的二维数组...
1.在一个函数中声明并且初始化一个结构体的数组,如何让函数返回这个数组。
2.如何让一个结构体的数组作为参数传给一个函数。
3.在一个函数中声明并且初始化一个结构体的二维数组,如何让函数返回这个数组。
4.如何让一个结构体的二维数组作为参数传给一个函数。
5.以上问题要求实现跨平台(就是说在linux中不能使用系统调用)。
6.以上问题如果是用二级指针来实现的话,请附上详细的代码并说明。
7.如果代码较长可以发到我的邮箱499400445@qq.com。
8.答案已经采纳,必将高分悬赏,请大神帮忙。 展开
2.如何让一个结构体的数组作为参数传给一个函数。
3.在一个函数中声明并且初始化一个结构体的二维数组,如何让函数返回这个数组。
4.如何让一个结构体的二维数组作为参数传给一个函数。
5.以上问题要求实现跨平台(就是说在linux中不能使用系统调用)。
6.以上问题如果是用二级指针来实现的话,请附上详细的代码并说明。
7.如果代码较长可以发到我的邮箱499400445@qq.com。
8.答案已经采纳,必将高分悬赏,请大神帮忙。 展开
展开全部
1、如果你这个函数是自定义函数,那返回有点困难,函数调用结束,这些空间就都释放了,建议你把这个结构体数组定义成全局变量
2、把结构体数组名作为实参传递给函数
3、同1
4、同2,不过这时候,传给的那个函数形参应该也是二维数组,或者是二级指针变量
例如:struct stu a[2][3];
......
fun(a);
//fun1的函数原型应该是 void fun(struct stu b[][3]);如果fun有返回值,把void改为和返回值相同类型
或者原型 void fun(struct stu **p);void也依据你的fun是否有返回值做适当修改
2、把结构体数组名作为实参传递给函数
3、同1
4、同2,不过这时候,传给的那个函数形参应该也是二维数组,或者是二级指针变量
例如:struct stu a[2][3];
......
fun(a);
//fun1的函数原型应该是 void fun(struct stu b[][3]);如果fun有返回值,把void改为和返回值相同类型
或者原型 void fun(struct stu **p);void也依据你的fun是否有返回值做适当修改
更多追问追答
追问
真心很感谢你。开始我也是声明全局变量的方法做的。
后来写到一半才发现这个方法局限性太大,而且我有时几个函数同时改变全局数组的值,这样做很容易产生错我。
追答
那就只能试着把这个结构体数组定义成静态的,static
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、如果你这个函数是自定义函数,那返回有点困难,函数调用结束,这些空间就都释放了,建议你把这个结构体数组定义成全局变量
2、把结构体数组名作为实参传递给函数
3、同1
4、同2,不过这时候,传给的那个函数形参应该也是二维数组,或者是二级指针变量
例如:struct stu a[2][3];
2、把结构体数组名作为实参传递给函数
3、同1
4、同2,不过这时候,传给的那个函数形参应该也是二维数组,或者是二级指针变量
例如:struct stu a[2][3];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. 定义一个指向数组的指针
2. 定义一个指向结构体数组的指针
3.定义一个指针指向你要返回的数组
4. 定义一个指针指向你要传递的二维数组
5. 这些方法么有平台限制
2. 定义一个指向结构体数组的指针
3.定义一个指针指向你要返回的数组
4. 定义一个指针指向你要传递的二维数组
5. 这些方法么有平台限制
更多追问追答
追问
先谢谢你。但是报错,类型不兼容。求代码详解。
追答
任何一种类型都可以用指针来传入值和返回值。如果是g++下字符数组不兼容char *或者unsigned char *加上强制转换符就行了。你把你的代码贴出来看看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
由于数组是不可修改的左值,所以在C/C++中函数的返回值不能是数组,你可以考虑用指针数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询