关于指针数组函数的一个问题

structdata*search(){structdata*b[10];return(*b);}我想定义一个指针数组函数最后返回该数组请问这样能到达效果么?... struct data *search()
{
struct data *b[10];

return(*b);
}
我想定义一个指针数组函数 最后返回该数组 请问这样能到达效果么?
展开
 我来答
百度网友1c6895208
2011-04-03 · TA获得超过435个赞
知道小有建树答主
回答量:85
采纳率:100%
帮助的人:100万
展开全部
首先说关于你的返回值,根据你的定义是一个struct data的指针,但是你的return里呢?是*b,b是你定义的一个指针数组, 那*b就应该是你这个数组第一个值,相当于是b[0],这个显然不是你想要返回的值对吧.
再来看你想实现的问题,其实你要返回的是这个数组的首地址对吧,那显然应该用指向数组的指针,所以你还需要定义一个指向b的指针,把这个指针的值返回才对.
那么你用一这样一个指向数组的指针是不是就对了呢?再来看你定义这个指针数组的位置,是在函数内部,所以这个数组的有效域只是在这个函数内,这个函数结束时,这个数组也就被销毁了,所以当你在函数外读这个指针时,里面的值已经发生了改变,同样达不到你想要的效果.
综上所述:这样写是不正确滴

你要实现这样的效果只能在函数外定义数组,然后把数组传入函数进行修改.或是在函数内部用malloc开辟空间,但这样就不是用数组了.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式