Namespaces
Variants

strdup

From cppreference.net
헤더 파일에 정의됨 <string.h>
char * strdup ( const char * str1 ) ;
(동적 메모리 TR)

str1 이 가리키는 문자열의 복사본인 널 종료 바이트 문자열에 대한 포인터를 반환합니다. 반환된 포인터는 메모리 누수를 방지하기 위해 free 에 전달되어야 합니다.

오류가 발생하면 널 포인터가 반환되고 errno 가 설정될 수 있습니다.

Dynamic Memory TR의 모든 함수들과 마찬가지로, strdup 은 구현체가 __STDC_ALLOC_LIB__ 를 정의하고, 사용자가 __STDC_WANT_LIB_EXT2__ 를 정수 상수 1 으로 정의한 경우에만 사용 가능함이 보장됩니다. string.h 를 포함하기 전에 정의해야 합니다.

목차

매개변수

str1 - 널 종료 바이트 문자열을 복제할 포인터

반환값

새로 할당된 문자열에 대한 포인터, 또는 오류 발생 시 널 포인터.

참고 사항

이 함수는 POSIX strdup 과 동일합니다.

예제

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

참고 항목

(dynamic memory TR)
지정된 크기까지 문자열의 복사본을 할당
(함수)
한 문자열을 다른 문자열로 복사
(함수)
메모리를 할당
(함수)