问题
strcpy 、strncpy 和 memcpy 的区别。这个可能不太常考,但是也是一个易错点,顺便总结下吧。
strcpy
函数原型:char *strcpy(char *dest, const char *src)
函数功能:把 src 地址开始且包括结束符的字符串复制到以 dest 开始的地址空间,返回指向 dest 的指针。需要注意的是,src 和 dest 所指内存区域不可以重叠且 dest 必须需有足够的空间来容纳 src 的字符串,strcpy 只用于字符串复制。
安全性:strcpy 是不安全的,strcpy 在遇到结束符时才会正常的结束运行,会因为 src 长于 dest 而造成 dest 栈空间溢出以致于崩溃异常,它的结果未定,可能会改变程序中其他部分的内存的数据,导致程序数据错误,不建议使用。
函数实现
char* strcpy(char* dest,const