免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4919 | 回复: 17
打印 上一主题 下一主题

函数返回局部变量的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-06 18:39 |只看该作者 |倒序浏览
《C专家编程》里面的
  1. char * licalized_time()
  2. {
  3.     char buffer[120];
  4.     ......
  5.     return buffer;
  6. }
复制代码
这里有可能出错。
但是经常在很多函数里面有返回局部int变量的,好像都没有问题
  1. int func()
  2. {
  3.     int ret;
  4.     ......
  5.     return ret;
  6. }
复制代码
只是前面返回的是局部的char[],后面的返回的是局部的int
为什么前面的不能,后面的能呢

论坛徽章:
0
2 [报告]
发表于 2011-11-06 18:46 |只看该作者
不好意思,用的无线不稳定,以为没发出来,发重了

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
3 [报告]
发表于 2011-11-06 19:48 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2011-11-06 19:54 |只看该作者
2004年注册的,问这么一个问题,不应该啊

论坛徽章:
0
5 [报告]
发表于 2011-11-06 20:42 |只看该作者
2004年注册的,问这么一个问题,不应该啊
cjaizss 发表于 2011-11-06 19:54


存在即合理呀,

论坛徽章:
0
6 [报告]
发表于 2011-11-06 20:44 |只看该作者
2004年注册的,问这么一个问题,不应该啊
cjaizss 发表于 2011-11-06 19:54



    {:3_196:} 这个……cu的板块有很多的

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
7 [报告]
发表于 2011-11-06 20:51 |只看该作者
这个……cu的板块有很多的
jeung 发表于 2011-11-06 20:44



    是这样的,第一个第二个都没有什么不合理的,本来都是返回了一个值而已.关键在于调用第一个函数的调用者意图,它需要拿这个返回值作为内存访问的依据,而这段内存语言逻辑上已经不存在了.

论坛徽章:
0
8 [报告]
发表于 2011-11-06 20:54 |只看该作者
回复  zhongyj


   
不是可能,而是必定

第一个返回的是一个char *类型的指针,指向数组的起始元 ...
pmerofc 发表于 2011-11-06 19:48


顺便我也问一句,如果换成下面的会是什么情况??

char * licalized_time()
{
    char buffer[120] = “abcdefg”;
    ......
    return buffer;
}

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
9 [报告]
发表于 2011-11-06 21:04 |只看该作者
楼上,你的意思应该是这样吧

char *buffer = "abcdefg";

论坛徽章:
0
10 [报告]
发表于 2011-11-06 21:06 |只看该作者
楼上,你的意思应该是这样吧

char *buffer = "abcdefg";
pandaiam 发表于 2011-11-06 21:04


恩,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP