728x90
반응형

코드는 자기가 짜다가 정말 모르겠다 싶을 때 보는 것이 제일 효율이 좋은 거 같다.

그리고 이 코드가 꼭 정답인 것도 아니다. 더 좋은 방법이 있을 수 있다. 이 글을 보는 사람들도 주의하면 좋겠다.

libft 과제에서는 실제로 존재하는 함수들을 우리가 직접 구현해야 한다. 

42서울 학생이신 분들은 다 알겠지만 norm 때문에 구현이 좀 귀찮아지는 함수들도 몇 개 있었던 것 같다. ft_split 등등

 

ft_bzero: 원하는 메모리 영역을 0으로 채워주는 함수

말 그대로 s를 n만큼 0으로 채워주면 된다.

void	ft_bzero(void *s, size_t n)
{
	char	*ptr;
	size_t	i;

	ptr = s;
	i = 0;
	while (i < n)
		ptr[i++] = 0;
}

 

ft_memset: 원하는 메모리 영역을 c로 채워주는 함수

앞에서 본 bzero와 거의 똑같은 함수이다. bzero에선 0을 memset에선 입력 c를 채워준다. 

void	*ft_memset(void *s, int c, size_t n)
{
	char	*ptr;
	size_t	i;

	ptr = s;
	i = 0;
	while (i < n)
		ptr[i++] = c;
	return (s);
}

 

ft_calloc: 원하는 크기만큼의 메모리를 할당하고 그 공간을 0으로 채워주는 함수

bzero와 거의 동일하지만 bzero는 이미 할당되어있던 메모리를 0으로 채운다면

calloc은 메모리를 새로 할당한 후에 0으로 채워준다. 코드 구현에 memset 함수를 사용했다. 

void	*ft_calloc(size_t nmemb, size_t size)
{
	char	*ptr;

	if (!(ptr = (char *)malloc(sizeof(*ptr) * nmemb * size)))
		return (NULL);
	ft_memset(ptr, 0, nmemb * size);
	return (ptr);
}

 

github.com/kimjinho1/Libft

 

kimjinho1/Libft

42 Seoul Libft. Contribute to kimjinho1/Libft development by creating an account on GitHub.

github.com

728x90
반응형

+ Recent posts