strdup 的用法

来源:互联网 发布:mac卸载程序 残留图标 编辑:程序博客网 时间:2024/06/06 15:50

在看lxc代码中很多出现这个strdup()函数

所以非常好奇这个函数是做什么的,就查了一下这个东西是做什么用的。

头文件:#include <string.h>


定义函数:char * strdup(const char *s);


函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。


返回值:返回一字符串指针,该指针指向复制后的新字符串地址。若返回NULL 表示内存不足。

这个就很方便了。来看一下代码

#include <stdio.h>#include <string.h>int main(){    char a[] = "strdup";    char *b;     b = strdup(a);    //b = malloc(10 * sizeof(*b));    strcpy(b,a);    printf("b[] = \" %s \" \n",b);    return 0;}

你会发现不用下面那个malloc函数了,非常方便

0 0