어떤 메모리 블록의 시작 주소*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);
}