| 查看: 5075 | 回复: 19 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[交流]
一种函数多个返回值的方法,大家探讨一下可行性吧
|
|||
|
原文地址http://anony3721.blog.163.com/blog/static/511974201072984326889/ 在C中,正常情况下,我们只能从函数中返回一个值。但在很多情况下,我们需要从函数中返回多个值,此时使用数组或指针能够很好地完成这样的任务。这里是一个示例。这个程序使用一个整型数组作为参数,并将数组元素的和与积返回给调用函数。下面是C代码,这是一种常见情况。下面给出实现技巧: #include #include int* Pool(int array[],int size) { int *x; int i=0; int a[2]={0,1}; for(i=0;i a[0]+=array; //存储数组元素值的和 a[1]*=array; //存储数组元素值的积 } //将数组的基地址赋值给整型指针 x=&a[0]; //返回整个数组 return x; } int main() { int a[]={1,2,3,4}; int *c; c = Pool(a,4); printf("Sum = %d\nProduct = %d\n",c[0],c[1]); getch(); return 0; } 有一个问题是数组a[2]是局部变量,其地址是否还能返回 |
» 猜你喜欢
申请科研项目纯靠实力能成功吗?
已经有8人回复
中科院海洋所招收海洋材料相关领域博士研究生及研究助理
已经有4人回复
40+中年人失业后,还能找到好工作吗?
已经有3人回复
二审4个多月了还是Awaiting Reviewer Scores
已经有4人回复
OpenAI又攻克数学难题了,离AI做有机合成还有多远?
已经有13人回复
极限拉扯,如何抉择
已经有14人回复
课题组会帮你通过考核么?
已经有7人回复
入职后第一次管课题组的专利缴费,对账才发现官费比别人多掏了一倍
已经有6人回复
售一区SCI文章T0P,我:8O.551.O54,科目全,可十急
已经有9人回复
售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急
已经有10人回复
» 本主题相关价值贴推荐,对您同样有帮助:
非线性最小二乘拟合(初值问题)lsqcurvefit 函数的设定
已经有14人回复
Gulp 拟合势函数 初值设置的问题
已经有12人回复
大家推荐一下实变函数、泛函分析好的教材与视频
已经有21人回复
Lyapunov函数的选取和控制系统收敛速度快慢是怎么一种关系?
已经有10人回复
怎么得到旋轨耦合中不同J值的本征值和波函数?
已经有6人回复
为什么画出的对关联函数第三峰刚开始,之后的函数值就全变为零了,怎么解决这个问题
已经有5人回复
大家创造的基金查询方法,缩小范围的一种技巧
已经有9人回复
关于SIESTA中如何计算功函数的一种做法探讨
已经有8人回复
[求助]C/C++中多个返回值的问题
已经有5人回复
【讨论】请教大家一种有机物的合成方法
已经有4人回复
【原创】并行自洽计算后得到和节点数一样多的波函数文件wfc
已经有4人回复
【求助】控制律设计Lyapunov函数的参数取值范围
已经有8人回复
【求助】只知道有限个函数值求积分
已经有10人回复
» 抢金币啦!回帖就可以得到:
2026年人文教育与社会发展国际会议(HESD 2026)
+1/802
诚征女友
+1/481
重庆医科大学合川医院(合川区人民医院)公开招收博士后研究人员
+1/92
浙江农林大学生物质能源团队青年教师招聘通知
+1/88
复旦大学化学系材料化学方向招聘博后及科研助理
+3/84
祈祷我们论文发表顺利!!!
+1/83
中国科学院北京纳米能源与系统研究所 诚招2027级“申请-考核”制普通博士2名
+5/65
沈阳工业大学 环境电化学技术研究团队 招收硕士研究生(学硕/专硕)
+2/60
硫化物负极充电充不上去
+2/58
深圳理工大学—安徽大学 联合招聘博士后多名(电化学储能方向)
+1/46
浙江农林大学生物质能源团队青年教师招聘通知
+1/42
北京工商大学食品与健康学院杨绍祥课题组食品科学与工程博士招生
+1/38
中国地质大学(武汉)氢能研究院杨明团队-招收27年博士-新能源材料化学及催化
+1/32
爱丁顿实验
+1/32
大湾区大学-中山大学联合培养2027级博士研究生(二维材料/量子输运/自旋电子学)
+3/31
湖南大学-分析检测技术和生物柔性传感器-招收1名博士研究生 (2027年)
+1/23
坐标广州,诚征女友,结婚对象,非诚勿扰
+1/21
高分辨质谱测试丨科研单位对外服务
+1/18
中国科大-合肥国家实验室冷原子量子网络团队招聘启事
+1/12
上交化院邓楠楠组招收27年春/秋季入学申请考核博士-化学、生物相关方向
+1/7
★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 金币+1, 感谢参与 2013-09-01 00:49:40
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 金币+1, 感谢参与 2013-09-01 00:49:40
| 函数体中定义数组并返回时毫无意义的,函数的调用时在栈空间上进行的,而栈上的内容会随着函数执行的结束被释放,企图返回一个已经被释放了的对象是严重的错误。如果你非要这么做,这个数组的首地址应当是被new出来的,因为这样它就被存在了堆空间上,不会随着函数执行结束而被销毁,但是这样的另一个缺点就是new出来的不会自动释放,必须在后续代码中使用delete释放。在effective C++里Scot就明确指出不要试图让函数返回指针,这是很危险的。如果非要这么做,可以试试引用。 |
16楼2013-08-28 00:35:25
2楼2012-07-03 10:54:00
4楼2012-07-03 11:13:08
5楼2012-07-03 12:07:09










回复此楼
东山