免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
141 [报告]
发表于 2009-12-03 19:31 |只看该作者

这贴封了吧,这蛋撤得!
九片_cu 该用户已被删除
142 [报告]
发表于 2009-12-03 20:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
九片_cu 该用户已被删除
143 [报告]
发表于 2009-12-03 20:23 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
144 [报告]
发表于 2009-12-03 21:08 |只看该作者

回复 #1 bgifu 的帖子

void   GetMem(char   *p)   
  {   
        p   =   (char   *)malloc(100);   
  }   
   
  void   test(void)   
  {   
    char   *str   =   NULL;   
  GetMem(str);   
  strcpy(str,"hello   world");   
  printf(str);   
  }   
  请问运行test函数会有什么样的结果,为什么?   
   
  请高手祥解!!!!   

哥们你是否记错了?是不是上面的问题,讨论在下面的地址。

http://topic.csdn.net/t/20011227/13/444821.html

论坛徽章:
0
145 [报告]
发表于 2009-12-03 21:25 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
146 [报告]
发表于 2009-12-03 21:59 |只看该作者

回复 #1 bgifu 的帖子

after the function getMem() returned, mallocing space has freed....
if main goes throug free(p), it occurs to errors, maybe.

论坛徽章:
0
147 [报告]
发表于 2009-12-03 22:19 |只看该作者
在初始分配的内存空间中,数据不确定,可能获得垃圾值,

char *p = malloc (10);
memset(p,’\0’,10);

论坛徽章:
0
148 [报告]
发表于 2009-12-04 00:45 |只看该作者
楼主,请自己看林锐博士。里面有答案。

论坛徽章:
0
149 [报告]
发表于 2009-12-04 09:12 |只看该作者
lz只是不够自信而已。tx面试官不是有意为之,就是C基础太差劲。不是调侃。
关于指针、传值、返回等,真理掌握在Ownwaterloo、hobbs136、woyaoying一边。其他人好好学习下C基础吧,要不就别做C了。尤其是说getMem()之后返回野指针的,拜托,按lz说的,反汇编一下看看吧。

论坛徽章:
0
150 [报告]
发表于 2009-12-04 09:37 |只看该作者
土豆要是看到这,就再也快乐不起来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP