스닥 2020. 9. 25. 17:20

헤더 파일

<string.h>



사용 목적

메모리를 지정한 크기만큼, 특정 값으로 채운다.

메모리의 첫 주소를 반환



프로토타입과 매개변수

void    *ft_memset(void *b, int c, size_t len);

void *b = 특정 값으로 채우고 싶은 메모리의 시작값

int c = 채우고 싶은 특정 값 (ascii)

size_t len = 지정한 길이



반환값

메모리의 첫 주소



함수의 원리

이해를 돕기 위해 같은 동작을 하는 함수를 만든 것 입니다.

void    *memset(void *b, int c, size_t len)
{
    size_t        i;

    i = 0;
    while (i < len) // 지정한 길이만큼
    {
        *(char *)b = c; // 메모리를 특정 값으로 채운다.
        b++;
        i++;
    }
    return (b - i); // 메모리의 첫 주소값 반환
}


사용 예시

#include <string.h>
#include <stdio.h>

int            main(void)
{
    char    memory[11] = "abcdefghij";

    printf("Before memset: %s\n", memory);
    memset(memory, 33, 10);
    printf("After memset: %s\n", memory);
    return (0);
}
Before memset: abcdefghij
After memset: !!!!!!!!!!