c语言,按书上的代码如下,编译的过却运行不了,为什么?运行时会弹出内存错误?

#include<stdio.h>voidmain(){chara[]="iamaboy.",b[20],*p1,*p2;inti;p1=a;p2=b;for(;p1!=... #include<stdio.h>
void main()
{
char a[]="i am a boy.",b[20],*p1,*p2;
int i;
p1=a;p2=b;
for(;p1!='\0';p1++,p2++)
{
*p2=*p1;
}
*p2='\0';
printf("string a is:%s\n",a);
printf("string b is:");
for(i=0;b[i]!='\0';i++)
{
printf("%c",b[i]);
}
printf("\n");
}
展开
 我来答 举报
sxsy556
2011-10-16 · TA获得超过1284个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:659万
展开全部
1、首先要善于分析问题。
2、比如你觉得那个地方有问题,这样问起来更具体。
for(;p1!='\0';p1++,p2++)
我觉得是for(;p1!='\0';p1++,p2++)这里面的p1!='\0'应该是*p1!='\0'
豆芽二号00
2011-10-16 · 超过16用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:37.5万
展开全部
for(;p1!='\0';p1++,p2++)改为
for(;*p1!='\0';p1++,p2++)
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
cidplp
2011-10-16 · TA获得超过135个赞
知道答主
回答量:83
采纳率:0%
帮助的人:74万
展开全部
#include<stdio.h>
void main()
{
char a[]="i am a boy.",b[20],*p1,*p2;
int i;
p1=a;p2=b;
for(;*p1!='\0';p1++,p2++)
{
*p2=*p1;
}
*p2='\0';
printf("string a is:%s\n",a);
printf("string b is:");
for(i=0;b[i]!='\0';i++)
{
printf("%c",b[i]);
}
printf("\n");
}
你第一个for循环条件应该是*p1!='\0'
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
ruby9997
2011-10-16 · 超过68用户采纳过TA的回答
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:165万
展开全部
你好。你应该是输入错了。
for(;p1!='\0';p1++,p2++)应该改为
for(;*p1!='\0';p1++,p2++)
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
xixiyua2
2011-10-16 · TA获得超过102个赞
知道答主
回答量:119
采纳率:0%
帮助的人:105万
展开全部
for(;p1!='\0';p1++,p2++)
改为:
for(;*p1!='\0';p1++,p2++)
不过最好用while循环
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式