Namespaces
Variants

strdup

From cppreference.net
< 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!"

参见

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