그냥 게임개발자

memset() 본문

C++ 나만의 복습

memset()

sudoju 2024. 4. 7. 17:08

저번 포스팅에서 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