memset 함수는 메모리의 내용을 원하는 크기만큼 특정값으로 설정 가능합니다.
보통 생성된 배열을 초기화할 때 사용합니다.
먼저, memset 함수가 있는 헤더를 추가해야 합니다.
#include <string.h>
memset 사용법
memset(포인터(배열의 시작주소), 설정할 값, 크기);
- 포인터 : 배열의 시작 주소를 넣습니다.
- 설정할 값 : memset 함수는 1바이트 단위로 초기화하기 때문에 int형의 수를 넣을 때 0 이외의 수는 제대로 표현되지 않습니다. 즉, int 배열은 0으로 초기화할 때만 사용해야 합니다. char형의 경우에는 어떤 문자를 넣어도 문제 없습니다.
- 크기 : sizeof(자료형)*배열의 크기 혹은 sizeof(배열명) 으로 작성 가능합니다.
- 원형
void* memset(void* ptr, int value, size_t num);
memset 사용 예제
#include <iostream>
#include <string.h>
using namespace std;
int main() {
int intarr[10];
char chararr[10];
// 크기를 sizeof(자료형)*배열크기로 설정
memset(intarr, 0, sizeof(int) * 10);
for (int i = 0; i < 10; i++)
cout << intarr[i] << " ";
cout << endl;
// 크기를 sizeof(배열명)으로 설정
memset(intarr, 0, sizeof(intarr));
for (int i = 0; i < 10; i++)
cout << intarr[i] << " ";
cout << endl;
// int 배열에서 0이 아닌 수로 초기화 했을 때
memset(intarr, 1, sizeof(intarr));
for (int i = 0; i < 10; i++)
cout << intarr[i] << " ";
cout << endl;
// char 배열 'a'로 초기화
memset(chararr, 'a', sizeof(chararr));
for (int i = 0; i < 10; i++)
cout << chararr[i] << " ";
cout << endl;
}
출력결과
'C++' 카테고리의 다른 글
C++ stl sort (0) | 2022.03.31 |
---|---|
C++ string 클래스 (0) | 2021.07.21 |