| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2892 人关注过本帖
标题:请教一个程序死循环问题~~~~~高手请进!!!
只看楼主 加入收藏
tiw
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-2-13
收藏
 问题点数:0 回复次数:25 
请教一个程序死循环问题~~~~~高手请进!!!
#include<stdio.h>
#include<string.h>
main()
{   char xx[]="1,2,3,4,5,0";
    strcat(xx,"6789");
    printf("%s\n",xx);

}

运行时出现死循环,持续输出1,2,3,4,5,06789
去掉0时可以正常运行,且出现abnormal program termination,其他就不行。
搜索更多相关主题的帖子: include termination 
2008-03-20 14:26
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
char xx[15]="1,2,3,4,5,0";
越界.
2008-03-20 14:31
tiw
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-2-13
收藏
得分:0 
越界是不是指xx[]的长度不够?
2008-03-20 14:45
tiw
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-2-13
收藏
得分:0 
越界是不是指xx[]的长度不够?
2008-03-20 14:46
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
yes
2008-03-20 14:46
tyule168
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-3-18
收藏
得分:0 
嘿。。问一下。 。。为什么超界。。。有没有定义宽度啊。麻烦解释一下好吗
2008-03-20 15:29
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
printf("%d",strlen(xx));
2008-03-20 15:39
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
收藏
得分:0 
#include<stdio.h>
#include<string.h>
void main()
{   char xx[]="1,2,3,4,5,0";
    strcat(xx,"6789");
    printf("%s\n",xx);

}
不去0不是对的吗
怪了 xx[]中是5个数的时候就是错的 其他的都对的

[[it] 本帖最后由 zmhdxy 于 2008-3-20 16:18 编辑 [/it]]

2008-03-20 16:13
hoodlum1980
Rank: 2
来 自:浙江大学
等 级:论坛游民
威 望:2
帖 子:289
专家分:23
注 册:2008-2-24
收藏
得分:0 
Remarks
No overflow checking is performed when strings are copied or appended. The behavior of strcat is undefined if the source and destination strings overlap.
注意,没有这个函数没有检查内存边界。如果soure和destination存在内存重叠,结果是不可预测的。

Security Remarks
The first argument, strDestination, must be large enough to hold the current strDestination and strSource combined and a closing '\0'; otherwise, a buffer overrun can occur.
第一个参数的内存缓冲区,必须足够大以能够容纳原来字符串和你要追加的字符串以及结尾的\0。否则会出现内存溢出。
2008-03-20 18:09
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
[bo]以下是引用 [un]tyule168[/un] 在 2008-3-20 15:29 的发言:[/bo]

嘿。。问一下。 。。为什么超界。。。有没有定义宽度啊。麻烦解释一下好吗

虽然没有指定宽度,但在初始化的时候大小已经固定了

雁无留踪之意,水无取影之心
2008-03-20 19:01
快速回复:请教一个程序死循环问题~~~~~高手请进!!!
数据加载中...
 
   



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

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