strcpy的实现

发布网友

我来回答

4个回答

热心网友

主函数和strcpy中的memset(dest, 0, sizeof(dest));
这句话有问题;
因为char* dest未指向任何变量,长度不确定,那么这样分配的内存也是大小不确定的,所以有可能访问了为分配单元。

可以写成memset(dest,0,sizeof(src));这句话是分dest与src一样大小的单元。因为在strcpy中传入src时,或则是主函数中的src都是已知大小的

热心网友

楼上的解答有缺陷,return dest; 这里的dest已经指向的是'\0'字符了,应该改成:
char * strcpy(char* dest, const char* src)
{
if(NULL == dest && NULL == src) {
return NULL;
}

const char* strStr = src;
char* strDest = dest;

while((*strDest++ = *strStr++) != '\0');
return dest;
}

热心网友

dest没有分配,strcpy里面szRet根本不需要,直接返回dest就可以了

热心网友

main中的char *dest空间无法确定
改成char dest[20];

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com