65,211
社区成员
发帖
与我相关
我的任务
分享
char * strcopy(char * &to,const char *from)
{
assert((from!=NULL)&&(to!=NULL));
delete []to; //问题1:这样写对吗?因为不知道to指向的是单个字符还是字符数组,还有未初始化的指针应该怎么处理?
to=new char [strlen(from)+1] ; //问题2:这里目标数组大小明明是5啊 main调用了就变成4了 为什么?
char *des=to;
while((*des++=*from++)!='\0');
return to;
}
char m[]="hell";
char *a = new char[32];/////////////////////////////
char *c=new char();
strcpy(a,m);
cout < <sizeof(a) < <" " < <strlen(a);
看看你的程序,a 没有分配内存啊;
//char * strcopy(char * &to,const char *from)
char * strcopy(char * to,const char *from)//上面错了吧,这个才是对的
char * strcpy( char *strDest, const char *strSrc )
{
assert( (strDest != NULL) && (strSrc != NULL) );
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ );
return address;
}