免费注册 查看新帖 |

Chinaunix

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

今天去华为面试,遇到了一个题,大家看看 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2007-08-13 15:31 |只看该作者
段错误 (core dumped)

gcc 版本 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
鉴定完毕

论坛徽章:
0
32 [报告]
发表于 2007-08-13 15:32 |只看该作者

回复 #1 yyjjss 的帖子

RH9下提示段错误.......

论坛徽章:
0
33 [报告]
发表于 2007-08-13 15:32 |只看该作者
原帖由 yyjjss 于 2007-8-13 15:20 发表
且不说这个混蛋程序的对错,问题是你怎么还敢去华为??听说华为的楼道里冤魂乱串啊!

=================
进去就看见床垫和被子,已经凉了半截

在里边工作还会时不时想起死去同事的音容笑貌,更心寒。

论坛徽章:
0
34 [报告]
发表于 2007-08-13 15:34 |只看该作者
原帖由 yyjjss 于 2007-8-13 14:00 发表
#include
#include
                     
int main(void)
{
   
char * str1="6789";
char * str2="123456789";
strcpy(str1,str2);
printf("str1=%s\n",str1);
printf("str2=%s\n",str2);
    ...

不知道他想考些什么,不过如果你说这个程序没问题的话,面试就over了

论坛徽章:
0
35 [报告]
发表于 2007-08-13 15:43 |只看该作者
华为怎么能出这么垃圾的题,他们命出来的题,不进行测试一下吗?华为无人啊,替他们伤心,还自称通信业的老大,前景堪忧!

论坛徽章:
0
36 [报告]
发表于 2007-08-13 15:51 |只看该作者
具体结果和操作系统的内存分配有关系
str1可能的分配是8个字节,因为初始常量为4个字节,再加上0x00的字符串结束符,就有5个字节,这个操作系统就会分配8个字节给它。当str2拷贝到str1的时候,因为str2有9个字节,再加上str2的0x00的结束符,拷贝动作先把str1的8个字节覆盖,由于str2的常量紧跟在str1之后,拷贝动作就把str2的第一字节覆盖成'9',第2个字节覆盖成0x00,所以运行结果就
123456789
9

论坛徽章:
0
37 [报告]
发表于 2007-08-13 15:53 |只看该作者
我说有问题,没有分配空间,他说你拿回去试试。

论坛徽章:
0
38 [报告]
发表于 2007-08-13 15:58 |只看该作者
我觉得华为是在考数据在内存中是如何存放的。以及数据越界的现象和危害的吧。

论坛徽章:
0
39 [报告]
发表于 2007-08-13 16:20 |只看该作者
原帖由 ccjjhua 于 2007-8-13 15:51 发表
具体结果和操作系统的内存分配有关系
str1可能的分配是8个字节,因为初始常量为4个字节,再加上0x00的字符串结束符,就有5个字节,这个操作系统就会分配8个字节给它。当str2拷贝到str1的时候,因为str2有9个字 ...


为什么是分配8字节,64位机吗

论坛徽章:
0
40 [报告]
发表于 2007-08-13 16:21 |只看该作者

运行结果

windows下运行结果 by TC++
str1=123456789
str2=6789

结论
程序有问题

suse10下运行结果 by gcc
hw.c: In function 'main':
hw.c:6: warning: incompatible implicit declaration of built-in function 'strcpy'

生成a.out
执行a.out
Segmentation fault

[ 本帖最后由 shangyilong 于 2007-8-13 17:26 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP