strcat连接字符串自身的问题。
一本通测评网站,题号2050,原本想用strcat(str,str),将字符串str复制一倍,但提交的时候出现运行错误(本地编译运行都正常)
后来发现其原因在于内存交叉。
例如这么写strcat函数
my_strcat(char *a,char *b){
while(*a) a++;
while(*b) *a++=*b++;
}
如上,出现了内存交叉,在cat过程中b不是一层不变的,b的长度会越来越长,直到越界。
一句话,不要使用strcat(str,str)。
strcat(str1,str2)可以正常使用。