| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2892 人关注过本帖
标题:请教一个程序死循环问题~~~~~高手请进!!!
只看楼主 加入收藏
meixinmeifei
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-6-6
收藏
得分:0 
不明白啊,
2008-03-20 19:24
tiw
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-2-13
收藏
得分:0 
谢谢各位啦
2008-03-20 21:01
tiw
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-2-13
收藏
得分:0 
回复 8# 的帖子
我运行时也是这样
2008-03-20 21:02
applelik
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-3-20
收藏
得分:0 
的确存在越界问题,但不仅仅是。让我无法理解的是,就像楼主说的,去掉0,加上任意个字符都可以运行,或者在0的前面加上任意字符都可以,只是结果后面会接着“abnormal program termination”
  
例如
char xx[]="1,2,3,4,5,48,8,9,1";
或char xx[]="1,2,3,4,8,9,10,0";
其余都不改,则都可以!!!
 我认为,是不是正好这组数据将某个指令改了,造成死循环,打个比方,例如转义符‘\0’系统认为是结束。
 而数组越界,系统缓存器在一定大小内可以接受,只是会出现“abnormal program termination”提示,
 所以,我想死循环不是数据越界造成的,但不知问题出在哪里,哪位能解答一下呢?
2008-03-20 21:31
tiw
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-2-13
收藏
得分:0 
的确很棘手~~~个人以为和编译器有关
2008-03-21 13:46
lvzehong
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-4-29
收藏
得分:0 
把你给的程序在我电脑上一运行,我用的编译器是visual c++,并没有出现死循环,但是运行可执行程序时会出现应用程序错误,也能给出结果.
只要给字符数组分配足够的空间,当然能顺利得到结果.
在没有给字符数组指定宽度时,通过我的观察好像只给字符数组分配了四个字节.
造成后面都越界.所以造成应用程序错误.
2008-03-22 22:09
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
abnormal program termination
程序异常终止.
2008-03-22 22:13
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
你们这个问题讨论了很久啊,数组里最后一个数字是0,就和字符串结尾"\0"是一样的,所以字符串数组的长度固定
再往里添内容就会越界了

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-03-22 22:17
tiw
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-2-13
收藏
得分:0 
不只是0 的问题,其他是数字也出现错误~~
2008-03-23 16:26
zhuwei168
Rank: 1
来 自:东软信息学院
等 级:新手上路
帖 子:180
专家分:0
注 册:2008-2-13
收藏
得分:0 
回复 9# 的帖子
9楼的不得不佩服一下
如果是你翻译的话,
2008-03-23 19:11
快速回复:请教一个程序死循环问题~~~~~高手请进!!!
数据加载中...
 
   



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

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