命名空间
变体
操作

strdup

来自 cppreference.com
< c‎ | string‎ | byte
在头文件 <string.h> 中定义
char *strdup( const char *src );
(自 C23 起)

返回指向空字符结尾的字节字符串的指针,它是 src 指向的字符串的副本。新字符串的空间获取方式与调用 malloc 相同。必须将返回的指针传递给 free 以避免内存泄漏。

如果发生错误,将返回空指针,并且 errno 可能被设置。

内容

[编辑] 参数

src - 指向要复制的空字符结尾的字节字符串的指针

[编辑] 返回值

指向新分配的字符串的指针,或者如果发生错误,则返回空指针。

[编辑] 备注

该函数与 POSIX strdup 相同。

[编辑] 示例

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    const char *s1 = "Duplicate me!";
    char *s2 = strdup(s1);
    printf("s2 = \"%s\"\n", s2);
    free(s2);
}

输出

s2 = "Duplicate me!"

[编辑] 另请参阅

分配指定大小的字符串的副本
(函数) [编辑]
将一个字符串复制到另一个字符串
(函数) [编辑]
分配内存
(函数) [编辑]
释放先前分配的内存
(函数) [编辑]