728x90
반응형
memcpy 함수의 헤더 파일
#include <string.h>
strdup() 함수의 원형
char * strdup(const char *string);
Parameter
string
데이터를 복사할 주소이고 const char * 형으로 전달된다.
리턴값
복사된 데이터의 주소을 리턴하고 에러가 발생시 NULL 값이 리턴된다.
strdup 함수는 단순히 문자열 복사만 하는 strcpy에 추가적으로 메모리 할당을 해주는 함수이다.
그렇기 때문에 stdup 함수를 사용한 이후에는 free 를 항상 해주셔야 됩니다.
strdup 예제코드
#include <stdio.h>
#include <string.h>
int main(){
char * str = "hello world!!";
char *newstr;
newstr = strdup(str);
printf("*************************\n");
printf("str addr : %x\n", str);
printf("newstr addr : %x\n", newstr);
printf("str: [%s]\n", str);
printf("newstr: [%s]\n", newstr);
printf("*************************\n");
free(newstr);
return 0;
"strdup.c" 24L,
실행 결과
str 포인터와 newstr 포인터의 주소가 다른것을 확인할 수 있습니다.
str 포인터에 저장된 문자열이 strdup 함수에 의해 메모리를 할당하고 복사되는 것을 확인 할 수 있죠.
할당된 메모리에 대해서는 항상 free를 해주셔서 메모리 누수가 발생하지 않으니 항상 유의해주세요!
다른 string.h 파일의 함수에 대해 알고 싶으시다면 String.h 함수 파헤치기!!
반응형
'C 언어 > C 언어 리이브러리 함수' 카테고리의 다른 글
[C언어] String.h 라이브러리 함수 - strncpy() 함수 파헤치기 (0) | 2021.01.25 |
---|---|
[C언어] String.h 라이브러리 함수 - strcpy() 함수 파헤치기 (0) | 2021.01.20 |
[C언어] String.h 라이브러리 함수 - memmove() 함수 파헤치기 (0) | 2021.01.18 |
[C언어] String.h 라이브러리 함수 - memcpy() 함수 파헤치기 (0) | 2021.01.17 |
[C언어] String.h 헤더 파일 분석하기(String.h 함수 모음, C언어 래퍼런스) (1) | 2021.01.16 |