发布网友
共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];