메모리의 시작주소 *b부터 len바이트만큼의 메모리를 값c로 채워주는 함수
void *ft_memset(void *b, int c, size_t len)
🔩 parameters
*b : c로 채워나갈 메모리 블록의 시작주소
c : 메모리를 채울 값
len : 채워야하는 바이트 크기📬 return
void *형 반환
- *b로부터 시작하여 len바이트만큼을 c로 채운 뒤 포인터 b를 반환
- 포인터는 주소값연산이기에 부호를 쓰지않아야한다, 때문에 unsigned로 사용하는것이 좋다.
채울때 사용할 문자 c는 int형으로 받아왔지만 unsigned char로 형변환해줌, unsigned를 사용하지 않았을 시 사용환경에따라 다르게 동작할 수 있기때문에 unsigned를 사용함.- void *는 자료형이 정해지지않은 범용 포인터임, 따라서 어떤 자료형으로 된 포인터에도 void 포인터를 저장할 수 있음
#include "libft.h"
void *ft_memset(void *b, int c, size_t len)
{
char *str;
size_t i;
str = (unsigned char *)b;
i = 0;
while (i < len)
{
str[i] = (unsigned char)c;
i++;
}
return (b);
}