00 개요
- 메모리... C...C..
01 memset 함수
1. 정의 및 역할
- = memory + setting = 메모리를 (특정 값으로) 세팅
- 메모리의 내용(값)을 원하는 크기만큼 특정 값으로 설정하는 함수
2. 문법
void* memset(void* ptr, int value, size_t num);
- Parameters
- void* ptr:
- 세팅하고자 하는 메모리의 시작 주소
- 즉, 그 주소를 가리키고 있는 포인터가 위치하는 자리
- a pointer to the block of memory to fill
- value:
- 메모리에 세팅하고자 하는 값
- int 타입으로 받지만 내부에서는 unsigned char 로 변환되어서 저장됨
- 즉 'a' 이런것을 넣어도 무방
- type integer
- converts it to an unsigned char before using it to fill a block of memory
- size_t num:
- 길이
- 바이트 단위, 메모리의 크기 한조각 단위의 길이
- 보통 "길이 * sizeof(데이터타입)" 의 형태로 작성
- number of bytes to be set to the value
- void* ptr:
- Return
- 성공: 첫번째 인자로 들어간 ptr
- 실패: NULL
- header file
- memory.h 혹은 string.h 둘중 하나를 사용해도 무방
- 두개다 memset 함수가 정의되어 있음
3. 예제
1) 문자 배열 변경
char arr[] = "blockdmask";
memset(arr, 'c', 5 * sizeof(char));
print(arr);
- 첫번째 인자에는 변경하고자 하는 목적지의 첫번째 주소(포인터)
- 두번째 인자에는 변경하고자 하는 값 'c'
- 마지막 인자에는 변경하고자 하는 길이 5
- char 배열이 들어왔으므로 char 타입의 바이트 크기를 계산해서 곱함 - 즉, 바이트 길이를 넣어준 것
- 반환값:
cccccdmask blog
- 배열 "blockdmask blog"에서 앞자리 5자리가 'c' 값으로 초기화 된 것 확
참조
'C' 카테고리의 다른 글
구조체의 필드에 접근 방법 (->, .) (0) | 2024.08.30 |
---|---|
PyList_New(size 또는 0) (0) | 2024.08.30 |
struct 구조체 (C언어 데이터 타입) (0) | 2024.08.09 |
매크로 함수, 인라인 함수(#define, #inline) (0) | 2024.06.25 |
Macro (매크로) (0) | 2024.06.25 |