指针 求帮忙
#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的值改变了..指向改变了.