strdup()함수는 입력받은 문자열을 복사한 새로운 문자열 포인터를 반환해준다.
NAME
strdup, strndup, strdupa, strndupa - duplicate a string
SYNOPSIS
#include <string.h>
char *strdup(const char *s);
char *strndup(const char *s, size_t n);
char *strdupa(const char *s);
char *strndupa(const char *s, size_t n);
#include#include int main() { char *me; me = strdup("who am I"); printf("%s\n", me); return 0; }
[추가 내용]
배열 같은경우
1. char a[] = "test ";
2. char *a = "test";
1. 문자열 상수의 복사가 이루어져서 스택에 저장.
2. 문자열 상수의 static 영역의 주소값이 저장이 되기 때문에 리턴값을 사용할수 있다.
[함수의 원시 소스코드]
=> strdup.c
출처 : http://opensource.apple.com/source/texinfo/texinfo-4/texinfo/lib/strdup.c?txt
#if HAVE_CONFIG_H # include#endif #ifdef STDC_HEADERS # include # include #else char *malloc (); char *strcpy (); #endif /* Return a newly allocated copy of STR, or 0 if out of memory. */ char * strdup (const char *str) { char *newstr; newstr = (char *) malloc (strlen (str) + 1); if (newstr) strcpy (newstr, str); return newstr; }
반응형
'Language > C' 카테고리의 다른 글
strcmp 함수 예제 (3161) | 2012.08.17 |
---|---|
strchr 함수 예제 (442) | 2012.08.14 |
getutxent 함수 예제 (3681) | 2012.08.13 |
strtok 함수 예제 (3377) | 2012.08.06 |
writev 함수 예제 (472) | 2012.07.31 |