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 |