一个简单的c语言程序。帮看下为什么VC6.0编译能通过,运行却出错。

#include<stdio.h>voidmain(){voidcopy_string(char*from,char*to);char*a="Iamateacher";c... #include<stdio.h>
void main()
{
void copy_string(char *from,char *to);
char *a="I am a teacher";
char *b="You are a student";
copy_string(a,b);
printf("a is %s\nb is %s\n",a,b);
}
void copy_string(char *from,char *to)
{
while(*from!='\0')
{
*to=*from;
from++;
to++;
}
*to='\0';
}
展开
 我来答
Daven172
2010-12-22 · TA获得超过628个赞
知道小有建树答主
回答量:448
采纳率:0%
帮助的人:404万
展开全部
char *a="I am a teacher";
正确写法应为:const char *a="I am a teacher";
因为a指向一个常量字符串
所以不能在copy_string函数中修改a所指向的内存空间的内容。
char *b同理

修改:
#include<stdio.h>
void main()
{
void copy_string(char *from,char *to);
char a[]="I am a teacher"; //修改
char b[]="You are a student";//修改
copy_string(a,b);
printf("a is %s\nb is %s\n",a,b);
}
void copy_string(char *from,char *to)
{
while(*from!='\0')
{
*to=*from;
from++;
to++;
}
*to='\0';
}
777999666qhw
2010-12-22 · TA获得超过4871个赞
知道大有可为答主
回答量:5615
采纳率:25%
帮助的人:4653万
展开全部
我这运行成功

#include<stdio.h>

void copy_string(char *from,char *to);

int main()
{

char *a="I am a teacher";
char *b="You are a student";
copy_string(a,b);
printf("a is %s\nb is %s\n",a,b);
}
void copy_string(char *from,char *to)
{
while(*from!='\0')
{
*to=*from;
from++;
to++;
}
*to='\0';
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海雄风2009
2010-12-22 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2832万
展开全部
#include <stdio.h>

char* copy_string(char *from,char *to);

void main()
{

char a[]="I am a teacher";
char b[]="You are a student";
copy_string(a,b);
printf("a is %s\nb is %s\n",a,b);
}
char* copy_string(char *from, char *to)
{
char* address= to;
while(*from != '\0')
{
*to = *from;
from++;
to++;
}
*to='\0';

return address;
}

楼主就是写个字符串拷贝函数然后调用

我改了下 楼主看看 可以正常拷贝
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式