永发信息网

c语言子函数怎么返回数组

答案:5  悬赏:40  手机版
解决时间 2021-01-25 07:52
我做题时,需要用到一个子函数,子函数的变量是一个数组,经过子函数运算后,返回来的仍然是一个数组,定义时把子函数定义为double型了,希望返回的数组也是double型,请问怎么返回。我不想用指针,只想用数组型的,返回值也是数组型的。
这个程序只是一个小部分,这个返回来的数组还要用于后面的其他数组计算,因为改成指针的话前面很多程序都得改动非常麻烦,所以不想用指针。请大家帮我想想怎么弄
最佳答案
//最好是这样做
void fun(double in_out_data[], unsigned size)
{
//直接处理in_out_data进来的数据
}

//非要返回数组就这样
double* fun(double in_data[])
{
double* ret = new double[你要返回的大小];
//处理数据
return ret;
}

//或是这样
double* fun(double in_data[])
{
//处理in_data里边的数据
return in_data;
}
全部回答
如果是非静态的局部变量,那第二次调用时,数组会被 ”清空“。 子函数中,声明的非静态局部变量、数组,使用的是函数栈空间。 在每次调用函数时,都会新分配一块儿栈空间给函数使用。 因此相当于每次调用子函数,子函数内的局部变量都会被初始化~
如果是c语言,返回值只能是数组首地址。也就是说还得用指针。。。 你可以用传递参数的形式来实现在函数内进行运算
接楼上 所以,你的子函数定义应该是整形的,不能使双精度型的!因为你要返回的是数组的地址!
double *shuzuhua() { double *pp = new double[100]; pp[0]= 0.333; pp[88]=9993; return pp; } double *shuzu=shuzhhua(); 这样你就可以使用double数组了,上面定义了100个double的数组。 返回的pp你可以直接使用。 如:shuzu[0]的值为0.333 shuzu[88]的值为9993;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
用put in造句
中国银行手机银行怎么解绑设备?中国银行怎么
恩格思说:“当革命风暴横扫整个法国的时候,
舅舅跟外孙女是属于哪种亲戚关系
sai魔棒一点就全蓝
建设单位转让在建工程,对于施工合同而言,这
辅因子如何影响酶催化活性
【受委托】下列有关受托代销业务描述说法错误
在C#中用Vs2012实现数据的模糊查询(窗体中含
如何做好看的微信推送
kid.city,visvt,bike,i的读音一一样吗
赵卫国 大兵《双簧》台词
天猫盒子,让电脑显示器输出的问题。DVI还是V
用25个数构造一个五阶幻方
李土生老师为什么说比丘尼戒384条,不是348条
推荐资讯
老兵图文广告地址在什么地方,我要处理点事
假如公司不还劳动手册,我能直接挂失,补办吗
【什么是雷阵雨】阵雨是什么意思?雨大不大
株洲七一路以前有一种鸡爪买,很辣,黑色的,
水光针价格多少
17,18世纪,英法美在革命高潮过后主要制订了什
手机发红包要银行卡,但我的红包里面有钱啊,
天生卷发的男人好色吗
修配缝纫地址在什么地方,想过去办事
为什么以前要吧妈妈叫成娘
ps4PROXY伺候器如何设置
验光单怎么看啊 求专业大神帮看下我眼睛的验
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?