读书人

指针 求帮忙,该如何解决

发布时间: 2012-04-22 18:34:46 作者: rapoo

指针 求帮忙
#define N 10
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
char *s1,*s2;
s1=(char *)malloc(10);
s2=(char *)malloc(10);
printf("please input string1!\n");
scanf("%s",s1);
printf("After input String1!\n");
printf("%s\n",s1);

while(*s1!='\0')
{
*s2=*s1;
s2++;
s1++;
}
*s2='\0';
printf("After copy String2:");
printf("%s\n",s2);
return 0;
}


我还没有输出s2,它的内容就被释放了,什么原因??

[解决办法]
#define N 10
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
char *s1,*s2,*s2_beg;
s1=(char *)malloc(10);
s2=(char *)malloc(10);
printf("please input string1!\n");
scanf("%s",s1);
printf("After input String1!\n");
printf("%s\n",s1);

s2_beg=s2;
while(*s1!='\0')
{
*s2=*s1;
s2++;
s1++;
}
*s2='\0';
s2=s2_beg;
printf("After copy String2:");
printf("%s\n",s2);
return 0;
}

[解决办法]
主要是你s2的值改变了..指向改变了.

读书人网 >C语言

热点推荐