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已经溢出了