42 Libft

#1.0 ft_memset

코딩클로스 2020. 10. 2. 16:41

memset 함수는 어떤 메모리의 시작점부터 연속된 범위를 어떤 값으로 (byte 단위) 모두 초기화하는 함수이다.

 

/*
void* memset(void *ptr, int value, size_t num);

반환 값 : void *
시그니처 : void *ptr, int value, size_t num
기능 : 대상체의 번지부터 지정한 바이트만큼 value값으로 채워준다.
*/

 

ptr : 채우고자 하는 메모리의 시작 포인터(시작 주소)

value : 메모리에 채우고자하는 값. int형이지만 내부에서는 unsinged char로 변환되어서 저장된다.

num : 채우고자 하는 바이트의 수. 즉, 채우고자 하는 메모리의 크기

 

 

 

매개변수 value 값은 int 형이니 4byte다 문자는 1byte인데 int 범위가 char 보다 더 크니깐 테스트 케이스 첫 번째 것처럼 매개변수로 char형을 써도 가능하다.

 

대부분의  mem이 붙은 함수는1바이트 단위로 뭔가 작업을 한다.

 

start_ptr에 시작주소를 캐릭터형으로 변환한 것을  넣은 이유는 char포인터 증가할 때마다 1바이트씩 증가해서 그렇다.
그래서 매개변수로 들어온 인자 자료형이 int라도 unsigned char로 캐스팅해야 한다.

'42 Libft' 카테고리의 다른 글

#1.5 ft_strncmp (수정 완료)  (0) 2020.10.03
#1.3 ft_strnstr 수정완료  (0) 2020.10.03
#1.4 ft_memcpy  (0) 2020.10.02
#1.2 ft_bzero  (0) 2020.10.02
#1.1 ft_strrchr (틀려서 수정)  (0) 2020.10.02