转载地址:
https://blog.youkuaiyun.com/zhouruifu2015/article/details/47687251
strdup不需要分配内存空间,自动实现字符串的拷贝
char *mystrdup(char *str)
{
char*p = malloc(sizeof(char)*(strlen(str) + 1));
strcpy(p, str);//拷贝
return p;
}
/*函数名: strdup
功 能: 将串拷贝到新建的位置处
用 法: char *strdup(char *str);
*/
//strcpy的变形
void main()
{
char str[14] = "rocket-黑夜\n";
str[0] = 'R';
printf("str=%s\n\n",str);
char *p1 = NULL;
char *p2 = "calc";
p1 = mystrdup(p2);
printf("p1=%s p2=%s\n\n", p1, p2);
p1 = _strdup(str);
printf("p1=%s", p1);
free(p1);
system("pause");
}
https://blog.youkuaiyun.com/zhouruifu2015/article/details/47687251
该作者的其他的博客文章 ,值得 读一下: