char * strcpy(char* dest,char* src)
作用
int main()
{
char dest[10] = "xxxxxxxxx";
char src[] = "asdasd";
strcpy(dest, src);
}
可以看到,运行之后strcpy会将src中所有字符包括’\0’复制到dest中,并且覆盖掉了dest中原本的字符。
缺陷
1.内存可能越界
当src字符串长度大于dest的长度时,strcpy依然会持续将源字符串复制到目的字符串数组,即使会超过目的字符串数组的边界,因为strcpy会去找源字符串的\0,会将\0之前的字符全部复制到目的数组。如果越界后碰到存其他变量的地址,就会把其他变量的值给改了。
2./0丢失
当源字符串长度等于目标字符串长度+1时会导致源字符串中的\0丢失
3.当源字符串与目标字符串地址相同时会导致无限复制,直到冲破数组边界。