免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
71 [报告]
发表于 2009-12-02 15:27 |只看该作者
林锐的那些东西,实在是走极端了

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
72 [报告]
发表于 2009-12-02 15:28 |只看该作者
一句话,那面试官比较菜

论坛徽章:
0
73 [报告]
发表于 2009-12-02 16:44 |只看该作者
原帖由 to407 于 2009-12-2 14:45 发表



主要原因就在於這個malloc上,这个getMem()的函数,返回的时候是不确定的,因为无法保证这个p指针参量在函数退出后是否仍然存在并指向之前的空间(这个由编译器实现决定)。

而且一旦这个getMen()失败了 ...

不知道你的专家积分是哪里来的

论坛徽章:
0
74 [报告]
发表于 2009-12-02 16:49 |只看该作者
p指针是野指针,在getMem返回后,指针所指的内容失效。

论坛徽章:
0
75 [报告]
发表于 2009-12-02 16:50 |只看该作者
#include <stdio.h>
#include <stdlib.h>
char *getMem()
{
    char *p;
    printf("%p\n",p);
    malloc((1<<30));
    p = malloc(1<<30);
    printf("%p\n",p);
    return p;
}

int main(void)
{
    char *p = getMem();
    printf("%p", p);
    sprintf( p, "hello" );
    free(p);
    return 0;
}
除了内存泄露之外的其他问题?

论坛徽章:
0
76 [报告]
发表于 2009-12-02 16:53 |只看该作者
原帖由 sinforad 于 2009-12-2 16:50 发表
#include
#include
char *getMem()
{
    char *p;
    printf("%p\n",p);
    malloc((1

又一个不明不白的人,竟然还改题啊.

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

回复 #76 zliming 的帖子

malloc不会失败吗?
周围随便找个都一眼看出这个问题;

我只是为了模拟malloc失败的情况

论坛徽章:
0
78 [报告]
发表于 2009-12-02 17:08 |只看该作者
不回答人家已经列出来的问题,题目中有下面一句:
我答的是申请内存后未判空,直接用sprintf写入会有问题对方说这不是问题所在。

你的做法有如:
char *getMem()
{
    char *p;
    p = malloc(100);
    return *p;//人脑不会犯错吗?我只是写一下人脑犯错时可能的情况
}

论坛徽章:
0
79 [报告]
发表于 2009-12-02 17:16 |只看该作者
觉得林锐真的对不起‘博士’这个title

论坛徽章:
0
80 [报告]
发表于 2009-12-02 18:18 |只看该作者
char *p = getMem();

应该为:

char *p;
p=getMem();

吧?

[ 本帖最后由 rick.zhao 于 2009-12-2 18:30 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP