名前空間
変種
操作

strdup

From 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!"

[編集] 関連項目

指定されたサイズの文字列のコピーを割り当てる
(関数) [編集]
ある文字列を別の文字列にコピーする
(関数) [編集]
メモリを割り当てる
(関数) [編集]
以前に割り当てられたメモリを解放する
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)