strcpy的实现
char* strcpy(char* dst,const char* src)
{
assert(dst!=NULL&&src!=NULL);
char* ret=dst;
while((*dst++=*src++)!='\0');
return ret;
}
(1)assert的作用:如果它的条件还回错误,则终止程序。
这种实现方式会带来三个安全隐患:
(1)无结束符
(2)内存不足
(3)内存重叠
例如:
很明显这样是错误的写法,因为没有\0的话会陷入死循环。