头文件:#include <string.h>
定义函数:char * strdup(const char *s);
函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。
定义函数:char * strdup(const char *s);
函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。
返回值:返回一字符串指针,该指针指向复制后的新字符串地址。若返回NULL 表示内存不足。
需要注意的是:strdup函数进行字符串复制,该字符串有自己的存储空间,和原字符串不相干,在使用完这个副本之后,要释放掉副本的存储空间,不然会造成内存泄露。
举例如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *s="abcdef",*p=NULL;
p = strdup(s);
printf("%s\n",p);
free(p);
system("pause");
return 0;
}