一个关于C语言函数参数和返回值的问题,求大神解答。 50

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式