strdup、_mbsdup、_wcsdup
string.h:インデックス への移動
ヘッダー ファイル
string.h、mbstring.h
プロトタイプ
char *strdup(const char *__s);
wchar_t *_wcsdup(const wchar_t *__s);
unsigned char *_mbsdup(const unsigned char *__s);
説明
文字列を、新たに作成された場所にコピーします。
strdup は、malloc を呼び出して領域を確保し、文字列 s の複製を作成します。割り当てられた領域は (strlen(s) + 1) バイト長になります。strdup で割り当てられた領域が不要になったときにそれを解放するのはユーザーの責任です。
戻り値
strdup は、複製した文字列の格納場所を指すポインタを返します。なお、領域を割り当てられなかった場合は null を返します。
移植性
POSIX | ANSI C | ANSI C++ | Win32 | Win64 | macOS | |
---|---|---|---|---|---|---|
strdup | + | |||||
_mbsdup | + | |||||
_wcsdup | + |
例
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void) {
char *dup_str, *string = "abcde";
dup_str = strdup(string);
printf("%s\n", dup_str);
free(dup_str);
return 0;
}