免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: bgifu
打印 上一主题 下一主题

[C] 去腾讯面试碰到个题目,求助一下 [复制链接]

论坛徽章:
0
161 [报告]
发表于 2009-12-04 11:19 |只看该作者
原帖由 jjdsl 于 2009-12-3 11:47 发表
char *getMem()
{
    char *p;
    p = malloc(100);
    return p;
}
猛一看没问题,实际上 p是个栈值,getMem返回之后p就没了,代码运行没问题,不代表写的就对!


我承认我再次进来是找乐子的。。。

论坛徽章:
0
162 [报告]
发表于 2009-12-04 11:23 |只看该作者
好了  原形毕露了  踏实点学习C吧  看谁的简历上还写 精通C/C++

论坛徽章:
0
163 [报告]
发表于 2009-12-04 11:28 |只看该作者
这帖本来没什么意思,可是讨论到现在,是越来越有意思了

论坛徽章:
0
164 [报告]
发表于 2009-12-04 11:32 |只看该作者
原帖由 雨过白鹭洲 于 2009-12-4 11:19 发表


我承认我再次进来是找乐子的。。。



我也是

论坛徽章:
0
165 [报告]
发表于 2009-12-04 11:33 |只看该作者
看了prolj对林博士的痛骂,我刚买的高质量C/C++第三版,都没心情看了

论坛徽章:
0
166 [报告]
发表于 2009-12-04 11:56 |只看该作者
我下的ebook高质量C/C++,还没有看,看来也没有必要了

论坛徽章:
0
167 [报告]
发表于 2009-12-04 12:02 |只看该作者

回复 #1 bgifu 的帖子

想太多了吧。malloc返回值是要强制转换为(char*)的,不然会警告的。只这个而已。。。

论坛徽章:
0
168 [报告]
发表于 2009-12-04 12:06 |只看该作者
原帖由 huang_bu 于 2009-12-4 10:24 发表
getMem内部的p指针应该定义成static char *p;
getMem 函数调用完后,相关的在栈里分配的空间是会被释放的,p指针原来用的空间会被重新分配,所以才会出错。

它又没返回局部变量的指针,释放个啥?
少来教训别人,没几个人有这样的资格

论坛徽章:
0
169 [报告]
发表于 2009-12-04 12:45 |只看该作者
受不了了,里面有些回复把我这个潜水员都逼出来了,好吧,我也是来看娱乐的

论坛徽章:
0
170 [报告]
发表于 2009-12-04 13:05 |只看该作者
其实我觉得我们不用去笑话别人,因为无论谁都可能会犯过此类错误。由于对事物(这里指c语言)了解的不够充分而对某些现象(这里指代码片段)妄下定论。
多看书学习,少一些争论,有益身心健康啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP