Skip to content

Latest commit

 

History

History
70 lines (50 loc) · 1.63 KB

File metadata and controls

70 lines (50 loc) · 1.63 KB

strdup

  • cstring[meta header]
  • std[meta namespace]
  • function[meta id-type]
  • cpp26[meta cpp]
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);
}
  • std::strdup[color ff0000]
  • std::free[link /reference/cstdlib/free.md]

出力

hello

バージョン

言語

  • C++26

処理系

関連項目

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

参照