名前空間
変種
操作

strdup

From cppreference.com
< C‎ | experimental‎ | dynamic
ヘッダー <string.h> で定義
char * strdup( const char *str1 );
(動的メモリーTR)

str1 が指す文字列のコピーである、ヌル終端されたバイト文字列へのポインタを返します。返されたポインタは、メモリリークを避けるために free に渡す必要があります。

エラーが発生した場合、ヌルポインタが返され、errno が設定されることがあります。

Dynamic Memory TR のすべての関数と同様に、strdup が利用可能であることは、実装によって __STDC_ALLOC_LIB__ が定義され、ユーザーが __STDC_WANT_LIB_EXT2__ を整数定数 1 として定義し、string.h をインクルードする前に、保証されます。

目次

[編集] Parameters

str1 - 複製するヌル終端バイト文字列へのポインタ

[編集] Return value

新しく割り当てられた文字列へのポインタ、またはエラーが発生した場合はヌルポインタ。

[編集] Notes

この関数は POSIX strdup と同一です。

[編集] Example

#ifdef __STDC_ALLOC_LIB__
#define __STDC_WANT_LIB_EXT2__ 1
#else
#define _POSIX_C_SOURCE 200809L
#endif
 
#include <string.h>
#include <assert.h>
#include <stdlib.h>
 
int main(void)
{
    const char *s1 = "String";
    char *s2 = strdup(s1);
    assert(strcmp(s1, s2) == 0);
    free(s2);
}

[編集] See also

(動的メモリーTR)
指定されたサイズまでの文字列のコピーを確保する
(関数) [編集]
ある文字列を別の文字列にコピーする
(関数) [編集]
メモリを割り当てる
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)