memset 함수

void *memset(void *buffer, int c, size_t n); 메모리를 설정하는 함수

입력 매개 변수 리스트

buffer 버퍼

c 설정할 값

n 설정할 바이트 수

반환 값

buffer

배열이나 구조체 등의 메모리의 모든 내용을 0으로 설정할 때 많이 사용합니다.

사용 예

/* https://ehpub.co.kr
 C언어 표준 라이브러리 함수 가이드
 void *memset(void *buffer, int c, size_t n);
 메모리를 설정하는 함수
 실습) 배열의 원소를 초기화하지 않은 상태의 값과 memset으로 설정 후 값 출력 */

#include 
#include 

int main(void)
{
    int arr[10];
    int i = 0;
    printf("====초기화 전====\n");
    for (i = 0; i < 10; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");

    memset(arr, 0, sizeof(arr));
    printf("====초기화 후====\n");
    for (i = 0; i < 10; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");

    memset(arr, 1, sizeof(arr));
    printf("====1로 초기화 후====\n");
    for (i = 0; i < 10; i++)
    {
        printf("%#x ", arr[i]);
    }
    printf("\n");
    return 0;
}

실행 결과

====초기화 전====
-858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 
====초기화 후====
0 0 0 0 0 0 0 0 0 0 
====1로 초기화 후====
0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 0x1010101 

실행 결과를 보면 memset 함수에 설정 값은 1 바이트 단위로 설정하는 것을 알 수 있어요.