首先 你想要比较P1和P2的话,while(*p2++ = *p1++); 应该用==第二 你的while(*p2++ = *p1++); 后面有分号,当执行完后 才输出P2,而此时 由于你前面通过memset (p2,0,20); 已经将P2中的内容清零 所以输出为空
因为while(*p2++ = *p1++); 这句之后,p1和p2都不知道指向什么地方去了!!!
malloc你不free它啊?