ft_memset

one·2020년 12월 29일
0

memset

어떤 메모리 블록의 시작 주소*Dst부터 연속된 바이트 크기Size를 어떤 값Val으로 채울 때 사용하는 함수.

함수 원형

void *memset(void * Dst, int Val, size_t Size)
  • 매개변수

    • void *Dst : 시작 주소
    • int_Val : 초기화할 값 (int로 전달되지만 함수 내부에선 unsigned char로 형변환되어 사용)
    • size_t Size : Val로 채울 바이트 수
  • 리턴 값
    *Dst가 리턴

함수 구현

#include "libft.h"

void	*ft_memset(void *s, int c, size_t n)
{
	//size_t
	//`unsigned int`를 size_t라는 이름으로 정의해 놓은 것.
	// typedef `unsigned int` `size_t`;
    	unsigned char	*ptr;
	size_t	i;

	ptr = (unsigned char *)s;
	i = 0;
	while (i < n)
		ptr[i++] = c;
	return (s);
}

사용 예시

#include <stdio.h>
//#include <stdlib.h>	//malloc, free 함수가 선언된 헤더 파일
//#include <string.h>	//memset 함수가 선언된 헤더파일

int main()
{
	char str[100] = "Hello World!";
	printf("%s\n", str);
	printf("%s\n", ft_memset(str, 'a', 5));
	printf("%s\n", str);
}

profile
늘 호기심을 갖고, 새로운 것에 도전할 것.

0개의 댓글