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);
}
kimjinho1/Libft
42 Seoul Libft. Contribute to kimjinho1/Libft development by creating an account on GitHub.
github.com
728x90
반응형
'42 SEOUL > Libft' 카테고리의 다른 글
42 서울 Libft(ft_putchar_fd, ft_putstr_fd, ft_putendl_fd, ft_putnbr_fd) (0) | 2021.01.25 |
---|---|
42 서울 Libft(ft_memcpy, ft_memccpy, ft_memchr, ft_memcmp, ft_memmove) (0) | 2021.01.24 |
42 서울 Libft(ft_split) (0) | 2020.12.19 |
42 서울 Libft(ft_atoi, ft_itoa) (0) | 2020.12.19 |
42 서울 Libft(ft_isalpha, ft_isdigit, ft_isalnum, ft_isascii, ft_isprint) (0) | 2020.12.19 |