字符串复制函数strdup的用法
By Minidxer | November 1, 2007
※作者:丁志刚 转载请注明:Minidx全文检索【http://blog.minidx.com/2007/11/01/40.html】
原型:extern char *strdup(char *s);
头文件:#include <string.h>
功能:复制字符串s
说明:返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。
举例:
// strdup.c
#include <syslib.h>
#include <string.h>
main()
{
char *s=”Golden Global View”;
char *d;
clrscr();
d=strdup(s);
printf(”%s”,d);
getchar();
return 0;
}
需要注意的地方:
1,malloc/new分配的内存不要忘记free/delete
2, malloc和free,new和delete配对不要弄错了。
另外在功能上和下面的代码是等价的:
char *dest = malloc( strlen( src ) + 1 );
assert( dest != NULL );
strcpy( dest, src );
Topics:
程序开发相关 |
2 Comments » |
642 views
Tags: free, malloc, strdup, 函数, 功能, 原型, 头文件, 字符串复制, 指针, 用法
可以由free()释放, 那就应该是必须调用free()释放了。
所以你的实现是有缺陷的
有缺陷?
能否列举个没有“缺陷”地实现方法呢?