C

strdup 함수의 구현

별ㅇI 2023. 10. 21. 17:34
반응형

strdup 함수

  • string.h 헤더파일에 속한 함수
  • 원형은 char *strdup(const char *s1)을 따른다. 
  • 주어진 s1의 크기만큼 동적 할당을 한 뒤 s1을 그 위치에 복사 해주는 함수 (마지막 널문자도 고려해줘야하므로 +1 만큼 더 할당해 넘겨줄것)
  • 리턴 값은 새로운 문자열의 주소이다. 

strdup 함수의 구현

#include "libft.h"

char	*ft_strdup(const char *s1)
{
	char	*tmp;

	tmp = malloc(ft_strlen(s1) + 1);
	if (tmp == NULL)
		return (0);
	ft_strlcpy(tmp, s1, ft_strlen(s1) + 1);
	return (tmp);
}
// #include <string.h>
// #include <stdio.h>
// int	main(void)
// {
// 	printf("strdup : %s", strdup("dog is cute"));
// 	printf("\nft_strdup: %s", ft_strdup("dog is cute"));
// }
반응형