最終更新日時(UTC):
が更新

履歴 編集

function
<cstring>

std::strdup(C++26)

namespace std {
  char* strdup(const char* s);
}

概要

文字列を複製する。

C23で<string.h>に追加された関数であり、C++26で<cstring>に取り込まれた。

効果

std::malloc()を呼び出したときと同様に確保した領域に、sが指す文字列 (終端のヌル文字を含む) の複製を作成する。

戻り値

複製した文字列の先頭文字へのポインタを返す。

返されたポインタはstd::free()に渡すことができる。

領域を確保できなかった場合、ヌルポインタを返す。

#include <cstring>
#include <cstdlib>
#include <iostream>

int main()
{
  char* p = std::strdup("hello");
  std::cout << p << std::endl;
  std::free(p);
}

出力

hello

バージョン

言語

  • C++26

処理系

関連項目

  • strndup: 文字列を複製する(上限サイズ指定)
  • std::free(): 確保したメモリを解放する

参照