| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 553 人关注过本帖
标题:为什么第二次输出的字符串a不正确?
只看楼主 加入收藏
impaler
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-6-12
结帖率:40%
收藏
已结贴  问题点数:10 回复次数:7 
为什么第二次输出的字符串a不正确?
#include<stdio.h>
void main()
{
        void copy_string(char from[],char to[]);
        char a[]="i am your husband";
        char b[]="you are my wife.";

        printf("string a is:%s\nstring b is:%s\n",a,b);
        copy_string(a,b);
        printf("string a is:%s\nstring b is:%s\n",a,b);
}

        void copy_string(char from[],char to[])
{
        int i=0;
        while(from[i]!='\0')
        {to[i]=from[i];i++;}
        to[i]='\0';
}
搜索更多相关主题的帖子: void husband 字符串 
2012-06-18 08:54
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
copy_string时数组越界,把数组写穿了

总有那身价贱的人给作业贴回复完整的代码
2012-06-18 09:13
impaler
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-6-12
收藏
得分:0 
回复 2楼 embed_xuel
既然copy的a内容超过了b的,为什么b还能正确显示?
没有改变a的数组,为什么a显示不出来呢
2012-06-18 09:18
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
你想想打印函数printf的原理,为什么void copy_string函数要在拷贝在字符串后面加'\0'?

总有那身价贱的人给作业贴回复完整的代码
2012-06-18 09:30
impaler
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-6-12
收藏
得分:0 
我觉得应该是编译器的问题,用vc6.0显示就没有问题。用gcc就有问题?
哪位大神给解释下why
2012-06-18 10:40
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
引导失败,我水平不行

总有那身价贱的人给作业贴回复完整的代码
2012-06-18 10:54
灰兜兜
Rank: 2
等 级:论坛游民
帖 子:25
专家分:18
注 册:2012-4-15
收藏
得分:3 
用VC6.0测试一下了正确啊。。。。
2012-06-19 00:11
qdg008
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2011-8-25
收藏
得分:3 
两个数组在在系统中的地址是连续分配的,谁前谁后,因系统不同而不同,当数组B在分配的地址在后,B越界会覆盖其它无用数据(如果运气好),因此,两个数组都可以正确输出。另一种情况:B在前面A在后,B的越界就覆盖A的一部分,因此B可以正确输出而A就不可以。
2012-06-19 09:16
快速回复:为什么第二次输出的字符串a不正确?
数据加载中...
 
   



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

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