| 查看: 4863 | 回复: 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]是局部变量,其地址是否还能返回 |
» 猜你喜欢
梦想
已经有7人回复
学科评审组评审是指会评吗?
已经有4人回复
面上合作单位盖章
已经有8人回复
面上函评意见出来了,像什么等级?
已经有15人回复
为什么资助数各大高校都创新高,自己申请怎么就这么难
已经有14人回复
小白求助 投论文要求的highlights应该如何写
已经有4人回复
麻烦专家们看看评委们的意见(F口面上)
已经有12人回复
怎么看青基中了没有啊
已经有6人回复
国社科又开始会评了,不知道这次命运如何
已经有11人回复
有多少人是今天查系统知道结果的?
已经有19人回复
» 本主题相关价值贴推荐,对您同样有帮助:
非线性最小二乘拟合(初值问题)lsqcurvefit 函数的设定
已经有14人回复
Gulp 拟合势函数 初值设置的问题
已经有12人回复
大家推荐一下实变函数、泛函分析好的教材与视频
已经有21人回复
Lyapunov函数的选取和控制系统收敛速度快慢是怎么一种关系?
已经有10人回复
怎么得到旋轨耦合中不同J值的本征值和波函数?
已经有6人回复
为什么画出的对关联函数第三峰刚开始,之后的函数值就全变为零了,怎么解决这个问题
已经有5人回复
大家创造的基金查询方法,缩小范围的一种技巧
已经有9人回复
关于SIESTA中如何计算功函数的一种做法探讨
已经有8人回复
[求助]C/C++中多个返回值的问题
已经有5人回复
【讨论】请教大家一种有机物的合成方法
已经有4人回复
【原创】并行自洽计算后得到和节点数一样多的波函数文件wfc
已经有4人回复
【求助】控制律设计Lyapunov函数的参数取值范围
已经有8人回复
【求助】只知道有限个函数值求积分
已经有10人回复
» 抢金币啦!回帖就可以得到:
【征稿中!】2026年机械、制造技术与材料国际会议 (MEMTM 2026)
+1/920
【IEEE列表会议征稿 】2026年第六届控制理论与应用国际会议(ICoCTA 2026)
+5/885
基金高中!
+1/596
优质男征女友
+1/470
昆明理工大学智能车辆技术团队招聘博士后
+3/225
【以色列理工学院全额奖学金硕博士招生】王燕课题组 · 柔性生物界面实验室
+2/122
锡基钙钛矿|超低水氧惰性环境,解锁无铅光伏技术攻关路径
+1/94
天平合规性问题
+1/93
【半导体薄膜代工】ALD/CVD/磁控溅射/热蒸发全工艺
+1/88
南方科技大学刘科院士团队诚聘矿物浮选分离方向研究助理
+1/84
大湾区大学刘天辉课题组招收2027级博士生(与中山大学物理学院联合培养)
+1/46
大湾区大学刘天辉课题组招收2027级博士生(与中山大学物理学院联合培养)
+1/45
山东大学-山东字节信息智能技术实验室2026年招聘博士后
+2/24
评职称需要,卖发明专利了:D有技术储备需求的设备厂商可联系
+1/19
浙江大学物理高等研究院袁怀洋课题组诚聘博士和博士后
+1/17
中国药科大学陈达威课题组招收2027年博士研究生 (药理学)
+1/14
义翘神州推出全长p-Tau217蛋白,助力阿尔茨海默病下一代生物标志物检测开发
+1/7
义翘神州TR-FRET激酶检测试剂盒助力高通量药物筛选
+1/2
项目助理招聘启事
+1/2
中国科学院广州生物医药与健康研究院课题组招收博士研究生1名(2027年9月入学)
+1/1
2楼2012-07-03 10:54:00
4楼2012-07-03 11:13:08
5楼2012-07-03 12:07:09
6楼2012-07-03 14:53:35
7楼2012-07-03 15:14:29
8楼2012-07-03 15:15:11
9楼2012-07-03 22:06:52
10楼2012-07-03 22:11:48
11楼2012-07-04 07:51:59
12楼2012-07-04 07:52:21
13楼2013-06-16 21:56:55
14楼2013-06-21 15:34:02
15楼2013-06-21 17:19:38
★ ★
小木虫: 金币+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
17楼2013-08-31 20:50:49
18楼2013-08-31 22:12:49
19楼2013-09-01 02:53:05
20楼2013-09-01 07:44:50
简单回复
2012-07-03 10:54
回复










回复此楼
东山
投票: