➰ 코딩 부트캠프/42 seoul

[0 Circle] Libft - ft_memset, ft_bzero

 사과개발자 2020. 12. 22. 20:48

📌ft_memset

어떤 메모리의 시작점부터 연속된 범위를 어떤 값으로 모두 지정하고 싶을 때 사용

void    *ft_memset(void *dst, int val, size_t size);

➕ 매개변수 (Parameters)

  • dst : 채우고자 하는 메모리의 시작 주소
  • val : 메모리에 채우고자하는 값. int형이지만 내부에서는 unsigned char(1 byte)로 변환되어서 저장
  • size : 채우고자 하는 바이트의 수

➕ 반환값 (Return)

  • void * : dst 리턴

➕ 설명 (Description)

void * (보이드 포인터)는 주소를 담는 자료형. 주소 연산은 불가능

➕ 코드 (Code)

#include "libft.h" 

void    *ft_memset(void *s, int c, unsigned int n) 
{ 
    unsigned char *ptr; 

    ptr = s; 
    while (n-- > 0) 
        *ptr++ = c; 
    return (s); 
}

📌ft_bzero

s가 가리키는 곳에 '0'바이트를 n개만큼 적음

void    ft_bzero(void *s, size_t n);

➕ 매개변수 (Parameters)

  • s : 채우고자 하는 메모리의 시작 주소
  • n : 채우고자 하는 바이트의 수

➕ 반환값 (Return)

  • void

➕ 코드 (Code)

#include "libft.h" 

void    ft_bzero(void *s, unsigned int n) 
{ 
    ft_memset(s, '\0', n); 
}
반응형