그냥 게임개발자
memset() 본문
저번 포스팅에서 memset()은 0, -1로 초기화 한다고 했다.
기억 나는가?

기억하자
memset()
memset()은 바이트단위로 초기화를 한다.
0, -1, char형의 하나의 문자(a, b, c, d 등)으로 초기화 할때만 사용
void* memset(void* ptr, int value, size_t num);
memset(배열의 이름, k, 배열의 크기) 이렇게 사용한다.
#include <iostream>
#include <algorithm>
using namespace std;
const int MAX_N = 1004;
int a[MAX_N];
int a2[MAX_N][MAX_N];
int main()
{
memset(a, -1, sizeof(a));
memset(a2, 0, sizeof(a2));
for (int i = 0; i < 10; ++i)
{
cout << a[i] << " ";
}
return 0;
}
fill 보다는 간편하게 초기화하는 것을 볼 수 있다.
특히 2차원 배열
0 또는 -1이란 값으로 초기화 할때는 memset을 쓰는 것이 좋다.
대신 0, -1 이외의 숫자는 절대 memset()으로 초기화 하지 못하니 주의해야 한다.
a로 초기화하기
#include <iostream>
#include <algorithm>
using namespace std;
const int MAX_N = 1004;
char a[MAX_N];
int main()
{
memset(a, 'a', sizeof(a));
for (int i = 0; i < 10; ++i)
cout << a[i] << ' ';
cout << '\n';
return 0;
}
오늘은 여기서 끝!
'C++ 나만의 복습' 카테고리의 다른 글
memcpy() (1) | 2024.04.07 |
---|---|
쓰지 말아야 할 초기화 방법 {0, } (0) | 2024.04.07 |
fill() (0) | 2024.04.07 |
이터레이터는 일반화된 포인터인가? (0) | 2024.04.07 |
이터레이터와 포인터의 차이 (0) | 2024.04.07 |