Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 new 연산자로 메모리를 초기화하는 방법

C++에서 new 연산자는 메모리를 할당하기 위해 정의된 연산자일 뿐, 초기화를 목적으로 하지 않습니다. 하지만 new 연산자로 int 타입 배열을 할당하면서 동시에 모든 요소를 기본값(정수의 경우 0)으로 초기화하고 싶다면 다음과 같은 문법을 사용할 수 있습니다.

문법

new int[10]();

여기서 주의할 점은 반드시 빈 괄호 ()를 사용해야 한다는 것입니다. 예를 들어 (0)이나 다른 표현식을 지정할 수 없으며, 이 문법은 오직 기본값 초기화(default initialization)에만 유용합니다.

만약 기본값이 아닌 다른 값으로 객체를 초기화해야 하는 상황이라면, fill_n, memset 등의 함수를 활용하는 방법도 있습니다.

예제

#include <iostream>
#include <cstring>   // memset 사용을 위한 헤더
#include <algorithm> // std::fill_n 사용을 위한 헤더

int main() {
    int myArray[10];

    // memset을 사용하여 모든 요소를 0으로 초기화
    memset(myArray, 0, 10 * sizeof(int));

    // std::fill_n을 사용하여 각 요소에 값 1을 할당
    std::fill_n(myArray, 10, 1);

    return 0;
}