Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      strdup

      From cppreference.com
      <c‎ |experimental‎ |dynamic
       
       
       
       
      Merged into ISO C The functionality described on this page was merged into the mainline ISO C standard as of 6/2019, seestrdup(since C23)
      Defined in header<string.h>
      char* strdup(constchar*str1);
      (dynamic memory TR)

      Returns a pointer to a null-terminated byte string, which is a duplicateof the string pointed to bystr1. The returned pointer must be passed tofree to avoid a memory leak.

      If an error occurs, a null pointer is returned anderrno may be set.

      As all functions from Dynamic Memory TR,strdup is only guaranteed to be available if__STDC_ALLOC_LIB__ is defined by the implementation and if the user defines__STDC_WANT_LIB_EXT2__ to the integer constant1 before includingstring.h.

      Contents

      [edit]Parameters

      str1 - pointer to the null-terminated byte string to duplicate

      [edit]Return value

      A pointer to the newly allocated string, or a null pointer if an error occurred.

      [edit]Notes

      The function is identical to thePOSIX strdup.

      [edit]Example

      Run this code
      #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){constchar*s1="String";char*s2= strdup(s1);assert(strcmp(s1, s2)==0);free(s2);}

      [edit]See also

      (dynamic memory TR)
      allocate a copy of a string up to specified size
      (function)[edit]
      copies one string to another
      (function)[edit]
      allocates memory
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/experimental/dynamic/strdup&oldid=123996"

      [8]ページ先頭

      ©2009-2026 Movatter.jp