[libft] ft_bzero
bzero?
#include <strings.h>
void bzero(void *s, size_t n);
Linux manpage description
: The bzero() function erases the data in the n bytes of the memory starting at the location pointed to by s, by writing zeros (bytes containing ‘\0’) to that area.
해석 및 부연설명
: memset
과 똑같이 작동하지만 오로지 \0으로만 채울 수 있다. 다만 리턴값 없이 단순히 메모리를 0으로 초기화하는 용도인 듯 하다. deprecated(시대에 뒤쳐졌다는 의미) 되었으니 대신 memset
을 사용하라고 한다.
ex)
int i = -1;
char str[] = "123456789";
bzero(str, 5 * sizeof(char));
while (++i < 10)
printf("%c",str[i]);
코드 실행 결과
6789
의문점 및 생각해볼점
딱히 없다.
ft_bzero 구현
void ft_bzero(void *ptr, size_t size)
{
while (size-- > 0)
*(unsigned char *)ptr++ = 0;
}
생각해보니 이미 만들어둔 memset
을 활용하는 것도 가능해보인다.
void ft_bzero(void *ptr, size_t size)
{
ft_memset(ptr, 0, size))
}