ft_calloc 구현

yeonjkim·2021년 5월 22일
0

42seoul-libft

목록 보기
3/43

1. ft_calloc 용도

* size 크기의 변수를 count만큼 메모리 공간을 할당해 주는 함수
* malloc 이용
* 할당된 메모리 주소에 0 채워넣기

2. ft_calloc 프로토타입

void	*ft_calloc(size_t count, size_t size)

3. 구현 시 유의사항

* malloc 함수는 동적 할당 실패 시 NULL을 리턴한다.
* 즉 calloc함수 내부에서 할당했을 시 NULL이 나왔다면 할당에 실패한 것이므로 NULL을 반환.

4. 코드 구현

#include "libft.h"

void            *ft_calloc(size_t count, size_t size)
{
        char    *p;

        if (!(p = (char *)malloc(count * size)))
        {
                return (0);
        }
        ft_bzero(p, (count * size));
        return (p);
}

5. 코드 구현 방법

  • ft_calloc : size_t형 변수 count와 size를 인자로 받음.

  • size 크기의 변수를 count개 만큼 할당하는 것이므로, count * size만큼 메모리 할당.

  • 할당 실패 시 0을 반환하고, 할당에 성공했다면 ft_bzero함수를 통해 p에 count * size만큼 0을 채워넣고 반환.

6. 코드 구현 시 어려웠던 점

  • 어려웠던 점은 딱히 아니나, void * 즉 보이드형 포인터에서 0을 반환하는 것은 NULL을 반환한다는 말과 같다.
  • NULL은 포인터이며, 0 주소이기에 0을 리턴하는 것과 NULL을 리턴하는 것은 같은 말이다.

0개의 댓글