请问一下,这个程序的输出结果
main()
{
char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++);
printf(“%sn”,p2);
}
[解决办法]
结果是。。
n
改一下就好了
int main()
{
char *p1= "name ";
char *p2 = 0;
char *p3 = 0;
char *p4 = 0;
p2=(char*)malloc(20);
memset (p2, 0, 20);
p3 = p1;
p4 = p2;
while(*p4++ = *p3++);
printf( "%s ",p2);
return 0;
}
[解决办法]
输出为空,因为p2的指针指向末尾,改为:
char *p1= "name ";
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++);
p2 = p2-5;//指向头
printf( "%s\n ",p2); //现在输出name