刚在网上上看到一个帖子,作者自己写了个strcpy函数。别的不看了,只看看函数的第一句话:
void *strcpy(void *dest ,const void *src,size_t n)
…{
if(dest==NULL)
dest=(char * )malloc(n);
// ……
}
乍一看,这句话似乎没什么问题,甚至还做了参数判断,如果dest为空则为其分配空间。但是,问题恰好出在这个画蛇添足的malloc上!
要知道,不管这个函数里面做了怎样的修改,在函数返回后,dest的值是不会改变的!也是说,如果传入的dest为NULL,那么在返回后,d