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 바이트 단위로 설정하는 것을 알 수 있어요.