* 인자로 받은 '주소값 s'에서 'n바이트'만큼 '0'으로 채우는 함수
void ft_bzero(void *s, size_t n)
* 인자로 들어온 주소값 s를 (unsigned char *)으로 형변환 해줘야 한다.
--> unsigned char가 아닌 signed char의 경우,
1의 보수 표현이나 부호-크기 방식(signed magnitude)방식으로 표현했을 시 -0을 가질 수 있다.
-0은 null character가 될 수 없으므로 unsigned char로 접근하기를 요구하고 있다.
* size_t :
시스템에서 어떤 객체나 값이 포함할 수 있는 최대 크기의 데이터를 표현하는 타입으로 반드시 unsigned형으로 나타낸다.
컴퓨터의 운영체제(x32 or x64)에 따라 size_t는 unsigned int, unsigned long long으로 나뉜다.
#include "libft.h"
void ft_bzero(void *s, size_t n)
{
unsigned char *ret;
size_t index;
index = 0;
ret = (unsigned char*)s;
while (index < n)
{
ret[index] = 0;
index++;
}
}
ft_bzero : 주소값 s와 size_t n을 인자로 받아 s에 n만큼 0을 채워주는 함수
앞서 언급한 대로 null character와 -0이 다른 관계로, unsigned char 형 포인터 변수 ret 생성.
ret에 s를 unsigned char*형으로 형변환 시킨 주소를 저장하고, index가 n보다 작을 때까지 ret에 0넣기.