strdup

 strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现。

原型:

extern char *strdup(char *s);

头文件:string.h


  1. char *strdup(const char *s)  
  2. {  
  3.         char *t = NULL;  
  4.         if (s && (t = (char*)malloc(strlen(s) + 1)))  
  5.         strcpy(t, s);  
  6.         return t;  
  7. }    

说明:

功 能: 将串拷贝到新建的位置处
strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。
返回值:存储该字符串的空间的地址,如果分配失败,返回null。

strdup符合posix标准,而_strdup是windows特有的,unix下,使用strdup。



这个函数完全可以被strcpy代替,只是函数传入参数不同而已。如果是strcpy的话,必须先准备好开辟的空间方便存储内容,而在strdup中,这部分在函数内部已经处理过了。

你可能感兴趣的:(C/C++)