열렬히.뛰기

ft_memset

école 42 > libft > ft_memset

개요

  • 함수 메모리 buffer를 받아서, int 값 c로 초기화시키는 것.
  • buffer의 길이는 변수 len으로 주어진다.

구현

  • buffer의 타입을 계속 변경시켜준다.

  • void * → unsigned char * → void *

  • 왜 unsigned char인가? 포인터는 주솟값 연산이니까 부호를 쓰지 않는다.

    따라서 부호가 없는 unsigned char를 쓰는 것이 관례!

코드

c
#include "libft.h"

void	*ft_memset(void *buffer, int c, size_t len)
{
	size_t			i;
	unsigned char	*str;

	i = 0;
	str = (unsigned char *) buffer;
	while (i < len)
	{
		str[i] = c;
		i++;
	}
	buffer = (void *)str;
	return (buffer);
}