char *p1="abcd";char *p2=(char*)malloc(sizeof(char) * strlen(p1));strcpy(p2,p1);解析:p2指向空间太小了,p1指向空间实际除了abcd四个char外,还有'\0'一个char,所以应该是strlen(p)+1。