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)
指定されたサイズの文字列のコピーを割り当てる
(関数)
文字列を別の文字列にコピーする
(関数)
メモリを割り当てる
(関数)
以前に割り当てられたメモリを解放する
(関数)