https://blog.csdn.net/goodwillyang/article/details/45559925
这里说一下为什么内存重叠的时候,使用strcpy会出现崩溃。
char * strcpy(char *dst,const char *src) //[1]
{
assert(dst != NULL && src != NULL); //[2]
char *ret = dst; //[3]
while ((*dst++=*src++)!='\0'); //[4]
return ret;
}
如下调用:
char *p = "123";
strcpy(p+1,p)
p字符串"123"的变化依次->"113"->"111",当strcpy函数while中dst是'\0'的时候会把最后的'1'复制进去,导致没有'\0'了,死循环了。