char *strcpy(char *strDest, const char *strSrc){if ( strDest == NULL || strSrc == NULL)return NULL ;if ( strDest == strSrc)return strDest ;char *tempptr = strDest ;}while( (*strDest++ = *strSrc++) != ‘\0’)return tempptr ;改为while( (*tempptr++ = *strSrc++) != ‘\0’)return strDest;指针tempptr不是局部变量吗,函数结束不是销毁了吗,为什么可以返回呢?
2 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
你返回的是tempptr中保存的内存区的地址 也就是作为参数传进来的地址。而指针变量
tempptr 本身所占用的内存区和他所指向的内存区不是一回事。销毁的只是tempptr本身所占用的内存区
- 2 回答
- 0 关注
- 930 浏览
添加回答
举报
0/150
提交
取消