读书人

strcpy函数解决方法

发布时间: 2012-02-24 16:30:38 作者: rapoo

strcpy函数
char *str = (char *) MALLOC(2);
strcpy(str, "12 ");
FREE(str);
这段代码会出现错误吧,为什么?

[解决办法]
应该malloc(3),字符串最后还有一个0
[解决办法]
char *strcpy(char *strDest,const char *strSrc)
{
assert((strDest!=NULL)&&(strSrc !=NULL))
char *address = strDest;
while((*strDest++ = *strSrc)!= '\0 ')
NULL;
return address;
}

所以要碰到0才结束copy,但是那个时候你的str已经溢出了

读书人网 >C语言

热点推荐