| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1253 人关注过本帖, 2 人收藏
标题:一个看似十分简单的问题,但我却怎么也解释不了
只看楼主 加入收藏
苦瓜也很甜
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2012-3-13
结帖率:80%
收藏(2)
已结贴  问题点数:5 回复次数:23 
一个看似十分简单的问题,但我却怎么也解释不了
#include<stdio.h>
void main()
{
    char a[5];
    gets(a);
    printf("%s",a);
}
按理说这个程序运行时输入的字符数不应该超过5个,但是我从输入1个字符到9个字符挨个测试,发现到第八个字符还可以运行(可是我定义数组的长度只有5啊)。但是到第九个字符运行时又出现“cpp。exe已停止工作”。求高手解答我心中疑惑。
搜索更多相关主题的帖子: 测试 工作 
2012-04-09 11:29
az569872968
Rank: 2
等 级:论坛游民
帖 子:46
专家分:78
注 册:2012-3-14
收藏
得分:0 
你把gets 换成scanf 试试
2012-04-09 11:52
苦瓜也很甜
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2012-3-13
收藏
得分:0 
回复 2楼 az569872968
也是这样,如果输入9个字符,就不会正确运行,小于9个的话就可以运行
2012-04-09 12:04
神之毅
Rank: 1
等 级:新手上路
帖 子:7
专家分:9
注 册:2012-3-13
收藏
得分:2 
定义char a[5],只是你专门开了一个长度位五的数组,按理来说,只能存储五个字符……后面的那几个字符已经超出,但一般来说……它是占用了别人的内存空间,程序交小时,一般不会出错,程序复杂点,就有可能无法运行……初学的
2012-04-09 12:29
新手菜鸟鸟
Rank: 2
等 级:论坛游民
帖 子:37
专家分:57
注 册:2012-1-15
收藏
得分:0 
很奇怪...关注此贴了  求大神解释
2012-04-09 12:30
cuijunchao
Rank: 5Rank: 5
来 自:湖南桂东
等 级:职业侠客
威 望:3
帖 子:132
专家分:386
注 册:2012-4-4
收藏
得分:0 
这些函数应该每次只能接收一个字符吧。
2012-04-09 12:33
cuijunchao
Rank: 5Rank: 5
来 自:湖南桂东
等 级:职业侠客
威 望:3
帖 子:132
专家分:386
注 册:2012-4-4
收藏
得分:0 
指的是,gets函数。
2012-04-09 12:34
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
这个问题很突然
2012-04-09 12:45
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:0 
回复 楼主 苦瓜也很甜
不懂,还真没试过

[ 本帖最后由 清微御宇 于 2012-4-9 15:26 编辑 ]

Stay hungry , Stay foolish!
2012-04-09 13:04
蓝xuan
Rank: 4
等 级:业余侠客
帖 子:81
专家分:211
注 册:2012-3-31
收藏
得分:0 
同意4楼的。。。。
2012-04-09 13:19
快速回复:一个看似十分简单的问题,但我却怎么也解释不了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016973 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved