Dia Egg - Shugo Chara

C

bzero 함수의 구현

별ㅇI 2023. 10. 13. 16:46
728x90
반응형

bzero 함수와 memset함수의 차이

bzero는 0으로 채우는 것이고 memset함수는 원하는 value를 지정하여 채울 수 있는것이다. 

사실상 bzero(str, 5) == memset(str, 0, 5)로 보아도 지장이 없다. 그러나 bzero는 c언아 비표준이며 사용중단된 함수이므로 사용하지 않는 것을 권장한다. 

bzero 함수

  • string.h 라는 헤더 파일에 정의 되어있는 함수이다.
  •  첫번째 인수로 받은 문자열에 두번째 인수로 받은 길이 만큼 0으로 초기화 시켜주는 함수이다. 
  • 원형은 void bzero(void *s, size_t n)이다. 
  • 0으로 채운다는 것은 문자 '0'이 아닌 숫자 0, 즉 아스키코드 상으로는 \0으로 채운다는 뜻이므로 0을 대입해주어야한다. 위의 memset함수와 같다고 한것고 int값 0으로 받기 때문이다. 

bzero 함수의 구현

#include "libft.h"

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

	i = 0;
	temp = (unsigned char *)s;
	while (i < n)
	{
		temp[i] = 0;
		i++;
	}
}
// #include <stdio.h>
// #include <string.h>
// int	main(void)
// {
// 	char str1[10] = "123456789";
// 	char str2[10] = "123456789";
// 	ft_bzero(str1, 5);
// 	for (int i = 0; i < 10; i++)
// 		printf("%c", str1[i]);
// 	printf("\n");
// 	bzero(str2, 5);
// 	for (int j = 0; j < 10; j++)
// 		printf("%c", str2[j]);
// }
728x90
반응형

'C' 카테고리의 다른 글

memcpy 함수의 구현  (0) 2023.10.13
restrict란?  (0) 2023.10.13
memset 함수의 구현  (2) 2023.10.13
char 와 unsigned char 의 차이  (0) 2023.10.13
strlen 함수의 구현  (0) 2023.10.09