64,646
社区成员
发帖
与我相关
我的任务
分享
#include "iostream"
using namespace std;
char * strcpy1(char * strDest, const char * strSrc)
{
if((strDest==NULL) || (strSrc ==NULL))
return NULL;
if(strDest==strSrc)
return strDest;
char *address = strDest;
while(*strSrc!= '\0')
{
*strDest=*strSrc;
strDest++;
strSrc++;
}
*strDest=*strSrc;
return address ;
}
void main()
{
char * p="asdfqwer";
char *q="yyy";
char *rtn = strcpy1(q,p);
cout << rtn;
}
//即使是这样,编译通过,执行报错
//原因是,char *q="yyy";这样定义的话 q指向的是内存的常量区域,数据是只读的
//所以拷贝的时候就会出错