Namespaces
Variants

strdup

From cppreference.net
< c ‎ | string ‎ | byte
헤더 파일에 정의됨 <string.h>
char * strdup ( const char * src ) ;
(C23 이후)

src 가 가리키는 문자열의 복사본인 널 종료 바이트 문자열에 대한 포인터를 반환합니다. 새로운 문자열을 위한 공간은 malloc 이 호출된 것처럼 얻어집니다. 반환된 포인터는 메모리 누수를 피하기 위해 free 에 전달되어야 합니다.

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

목차

매개변수

src - 복제할 null로 종료되는 바이트 문자열에 대한 포인터

반환값

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

참고 사항

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

예제

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char *s1 = "Duplicate me!";
    char *s2 = strdup(s1);
    printf("s2 = \"%s\"\n", s2);
    free(s2);
}

출력:

s2 = "Duplicate me!"

참고 항목

(C23)
지정된 크기의 문자열 복사본을 할당함
(함수)
한 문자열을 다른 문자열로 복사함
(함수)
메모리를 할당함
(함수)
이전에 할당된 메모리를 해제함
(함수)