免费注册 查看新帖 |

Chinaunix

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

今天去华为的一道面试题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2010-09-25 17:14 |只看该作者
这个真的很蛋疼。。。
{:3_183:}{:3_183:}{:3_183:}

论坛徽章:
0
22 [报告]
发表于 2010-09-26 08:50 |只看该作者
本帖最后由 xiaochangfu 于 2010-09-26 09:14 编辑

最终答案:
1.没判断malloc成功与否
2.当用户输入的字符串是格式化输入的串时,printf(pcStr)会导致打印错误

论坛徽章:
0
23 [报告]
发表于 2010-09-26 09:40 |只看该作者
是不是申请内存与检查写反了?一般来说是申请完内存再作检查的啊……

论坛徽章:
0
24 [报告]
发表于 2010-09-26 09:50 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
25 [报告]
发表于 2010-09-26 11:58 |只看该作者
printf没问题啊,Lz和shexinwe的i都是这么写的。
到底什么错误?

论坛徽章:
0
26 [报告]
发表于 2010-09-26 12:46 |只看该作者
  1. int getmemory(char **p, int num)
  2. {
  3.     if (NULL == p)
  4.         {
  5.                 assert(0);
  6.             return -1;
  7.         }

  8.         *p = (char *)malloc(num);
  9.         return 1;
  10. }
复制代码
这个函数写的太恶了!

论坛徽章:
0
27 [报告]
发表于 2010-09-26 13:17 |只看该作者
回复 1# xymail110


    这个问题的原意,是在unix环境下,行缓存问题,没有换行符,输出到标准输出,默认是行缓存的,但是没有换行符(scanf的情况下,是接受不了换行符的),所以不会产生输出.

论坛徽章:
0
28 [报告]
发表于 2010-09-26 13:18 |只看该作者
回复 9# cobras

进一步思考,可能是这样:用户输入了"%s"字符或%d等,这样str就变成了"*****%s****",
从而printf(str)会出错,因为%s要求后面有字符串,而不提供参数就是一个随机指针,导致crash。

论坛徽章:
0
29 [报告]
发表于 2010-09-26 14:06 |只看该作者
回复 27# zhousp20


    这个会在程序退出或者行缓存满后打印的

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
30 [报告]
发表于 2010-09-26 16:49 |只看该作者
总之, 是从书上炒的个题目,
人为编造的痕迹很严重,

就象  自己编造了个病句 让别人改,  
问题是, 我都不知道你想说什么 ,  如何改?


出题目的, 总是假定 面试的 以后会出错,  让面试的改.

问题是, 出题的,出了错,谁来改.


我们数据结构上的很多知识 重要, 是因为 排序,  二叉树  等是 一个关系数据库 软件 必须要面对的问题. 而数据库  是早期软件重要的应用领域,   

如果把实用背景不大的, 人为编造的 各种算法  都写进去, 估计几十厚本都写不完.


老以前 ,上小学, 还要学习珠算,  现在觉得是不是很可笑?
以前, 什么背五笔字根 也是大学非计算机专业的 必修课, 现在觉得是不是很垃圾?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP