본문으로 바로가기
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언어 라이브러리 - String.h 헤더 파일 분석하기(String.h 함수 모음)

c언어를 사용하시거나 해보셨던 분들은 대부분 memcpy, memset 함수를 사용해보셨을 텐데요. 해당 함수를 사용하기 위해서는 String.h 파일을 포함시켜줬던 기억이 나실겁니다. 요렇게요 #include #include

idsn.tistory.com

 

반응형