| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2351 人关注过本帖
标题:字符串溢出!
只看楼主 加入收藏
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
结帖率:80%
收藏
 问题点数:0 回复次数:14 
字符串溢出!

#include "stdio.h"
main()
{
char a[5],c;
int i=0;
while((c=getchar())!='\n')
a[i++]=c;
printf("%s",a);
}

当输入字符超过5位!
会产生什么后果?
计算机是如何处理该问题的?

搜索更多相关主题的帖子: 计算机 字符 main char include 
2007-03-14 13:16
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
main()
{
char a[5];
a[5]="rytyfie";
printf("%s",a);
getch();
}

还有此问题!
显示乱码?
谁能说说计算机遇到这些问题如何处理!

谢了!

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-03-14 13:20
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
输入5位以上就会超出A数组下标的上限,所以会出现错误

雁无留踪之意,水无取影之心
2007-03-14 13:24
tianykun
Rank: 4
等 级:禁止访问
威 望:11
帖 子:3727
专家分:0
注 册:2005-11-13
收藏
得分:0 

只知道会溢出,异常。。。。。


离开这里,离开你的视野,归隐到属于我的地方,无论何处
2007-03-14 13:24
csight
Rank: 1
等 级:新手上路
威 望:1
帖 子:293
专家分:0
注 册:2006-6-11
收藏
得分:0 

第二题;
应改为:char a[5]="rytyfie";
它长度超出,本身编译就不能通过;


头可断,发型不可乱;血可流,皮鞋不可不擦油;
2007-03-14 13:27
yelang7
Rank: 1
等 级:新手上路
威 望:1
帖 子:265
专家分:0
注 册:2006-11-3
收藏
得分:0 

第一个会有异常,
第二个只输出前5个字符.


想象和行动一致,做最棒的 IT 人. http://yelang7.
2007-03-14 13:29
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
以下是引用yelang7在2007-3-14 13:29:57的发言:

第一个会有异常,
第二个只输出前5个字符.


不是吧
我运行出来: 第一个:显示前5个,在换行显示乱码

第二个就显示乱码!

其实我想知道原理
而不是结果!


 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-03-14 17:04
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册



第一个结果!

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-03-14 17:07
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 

像第二个问应该报错


2007-03-14 17:32
★红狼
Rank: 2
等 级:论坛游民
帖 子:190
专家分:17
注 册:2006-7-12
收藏
得分:0 

第一个 应该因为 a 没有为后面的分 内存.所以后面的只是内存中 原有的数据.我想
实际上 这个很危险,和指针一样,后面的是随机内存数据.

第二 也是既然没分后面的内存,就全乱了.

2007-03-14 18:01
快速回复:字符串溢出!
数据加载中...
 
   



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

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