| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 510 人关注过本帖
标题:初学者求教:同样的一段简单代码在Win-TC中运行成功,在VC6中运行出错
取消只看楼主 加入收藏
sakyamuni
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-1
结帖率:0
收藏
已结贴  问题点数:10 回复次数:2 
初学者求教:同样的一段简单代码在Win-TC中运行成功,在VC6中运行出错
//某C语言教材中的例子,代码如下:
程序代码:
main()
{
    void string_copy();
    char *s1, *s2;
    s1 = "Good morning";
    s2 = "How do you do";

    printf("%s\n%s\n", s1, s2);
    string_copy(s2, s1);
    printf("%s\n%s\n", s1, s2);
}

void string_copy(s, t)
char *s, *t;
{
    while ((*s = *t) != '\0')
    {
        s++;
        t++;
    }
}





在Win-TC中编译运行成功,输出:
Good morning
How do you do
Good morning
Good morning

可是在VC6中编译通过无错,也无警告,但运行时:
显示
Good morning
How do you do
之后紧接着弹出错误窗口,说是 .exe 出现问题。
之后本应输出的
Good morning
Good morning
未能显示成功。
====================
作为初学者,对于这种问题想不出答案。
请指点。感谢。

[ 本帖最后由 sakyamuni 于 2010-10-12 21:31 编辑 ]
搜索更多相关主题的帖子: 代码 运行 
2010-10-12 14:56
sakyamuni
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-1
收藏
得分:0 
以下是引用帝国在2010-10-12 16:06:04的发言:


void string_copy(s, t)
char *s, *t;
{
    while ((*s = *t) != '\0')
    {
        s++;
        t++;
    }
}


在TC中也应该无法通过才对,char *s, *t;这两个指针变量设置成了全局变量,但是不能写在这个位置,函数实现段中,函数名和{}直接不能有其他语句。


不明白你说的。。。
1、这是全局变量吗?
2、函数名和{}之间不能有其他语句吗?形参类型说明不是都有的啊。
2010-10-12 21:35
sakyamuni
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-1
收藏
得分:0 
以下是引用御坂美琴在2010-10-12 21:41:27的发言:

这个C语言教材真是误导新人


版主啊,帮我瞅瞅吧
在wintc成功运行输出结果的,
在vc6中只输出调用函数之前的2句,然后就提示exe出错

破教材老了点,废了它算了。
只想弄明白为什么.....
感谢
2010-10-12 23:35
快速回复:初学者求教:同样的一段简单代码在Win-TC中运行成功,在VC6中运行出错
数据加载中...
 
   



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

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