首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
C/C++
C语言
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
请教一道C语言面试题
[已结贴,结贴人:weiya421]
加为好友
发送私信
在线聊天
weiya421
weiya
等级:
可用分等级:
短工
总技术专家分:
0
总技术专家分排名:
312798
揭帖率:
100.00%
发表于:
2008-08-21 15:24:43
楼主
一道找错题,请大家帮助看看有什么错误,谢谢.
char* p = "0123456789";
char str[10];
strcpy(str, p);
问题点数:
20
回复次数:
11
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
clhposs
Poss
等级:
可用分等级:
贫农
总技术专家分:
2732
总技术专家分排名:
7878
发表于:
2008-08-21 15:25:27
1
楼 得分:
2
char str[10]; 要11 因为有个'\0'
char str[11];
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ttkk_2007
等级:
可用分等级:
富农
总技术专家分:
4834
总技术专家分排名:
4362
发表于:
2008-08-21 15:26:36
2
楼 得分:
2
很明显,char str[10];这句错了
因该是char str[11];
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
stormlk1983
storm
等级:
可用分等级:
贫农
总技术专家分:
87
总技术专家分排名:
97094
发表于:
2008-08-21 15:28:28
3
楼 得分:
2
明显的你那个str的buffer定义的长度小了,至少定义成11啊,因为是字符串有‘\0’的
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
dede22
ff
等级:
可用分等级:
中农
总技术专家分:
297
总技术专家分排名:
46633
发表于:
2008-08-21 15:29:56
4
楼 得分:
2
这个在于strcpy这个函数,他会在str的末尾自动的添加一个"\0",来表示这个字符串的结束。如果说有错误,那也就这个了。越界访问。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lbh2001
liubaohua
等级:
可用分等级:
中农
总技术专家分:
445
总技术专家分排名:
41312
发表于:
2008-08-21 15:34:07
5
楼 得分:
10
char* p = "0123456789"; //------>10+1=11个字符,编译器会加一个'\0'作为字符串的结尾
char str[10];//----->只有十个位置,故造成栈溢出,会覆盖不属于自身的区域
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
caohaiming
chm
等级:
可用分等级:
长工
总技术专家分:
52
总技术专家分排名:
122849
发表于:
2008-08-21 15:36:36
6
楼 得分:
0
引用 5 楼 lbh2001 的回复:
char* p = "0123456789"; //------>10+1=11个字符,编译器会加一个'\0'作为字符串的结尾
char str[10];//----->只有十个位置,故造成栈溢出,会覆盖不属于自身的区域
应该是这样的吧。楼主快点结贴吧
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
edwal
无知无情
等级:
可用分等级:
中农
总技术专家分:
93
总技术专家分排名:
93930
发表于:
2008-08-21 15:37:00
7
楼 得分:
0
楼上各位分析的都对,就是长度的问题,字符串有一个结束符'\0'
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lbh2001
liubaohua
等级:
可用分等级:
中农
总技术专家分:
445
总技术专家分排名:
41312
发表于:
2008-08-21 15:45:09
8
楼 得分:
2
char* p = "0123456789";
char str[10];
strncpy(str, p, 10); //这样在C89中是可以的,但str不能作为字符串使用
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lunarfan
简洁就是美
等级:
可用分等级:
长工
总技术专家分:
686
总技术专家分排名:
26393
发表于:
2008-08-21 16:08:20
9
楼 得分:
0
\0
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
weiya421
weiya
等级:
可用分等级:
短工
总技术专家分:
0
总技术专家分排名:
312798
发表于:
2008-08-21 16:16:46
10
楼 得分:
0
谢谢以上发言的各位了,哈哈
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
pengzhixi
等级:
可用分等级:
富农
总技术专家分:
228
总技术专家分排名:
56099
发表于:
2008-08-21 16:17:27
11
楼 得分:
0
c类型字符串以'\0'结束。所以应该是char str[11]
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友