namespace std {
char* strdup(const char* s);
}
概要
文字列を複製する。
C23で<string.h>に追加された関数であり、C++26で<cstring>に取り込まれた。
効果
std::malloc()を呼び出したときと同様に確保した領域に、sが指す文字列 (終端のヌル文字を含む) の複製を作成する。
戻り値
複製した文字列の先頭文字へのポインタを返す。
返されたポインタはstd::free()に渡すことができる。
領域を確保できなかった場合、ヌルポインタを返す。
例
出力
hello
バージョン
言語
- C++26
処理系
- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌
関連項目
strndup: 文字列を複製する(上限サイズ指定)std::free(): 確保したメモリを解放する
参照
- P3348R4 C++26 should refer to C23 not C17
- C++26がC23を参照するようになり、この関数が
<cstring>に追加された
- C++26がC23を参照するようになり、この関数が