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"); }
版权声明:本文为博主原创文章,欢迎指出代码不良之处,提出代码优化方案。欢迎指点,黑夜代码,拼命更新,努力奋斗中......
原文:http://blog.csdn.net/zhouruifu2015/article/details/47687251