Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 새 연산자로 메모리를 초기화하는 방법은 무엇입니까?


C++의 new 연산자는 초기화가 아닌 메모리 할당을 위해 정의됩니다. new 연산자를 사용하여 int 유형의 배열을 할당하고 모든 배열을 기본값(예:int의 경우 0)으로 초기화하려면 다음 구문을 사용할 수 있습니다. -

구문

new int[10]();

단순히 빈 괄호를 사용해야 한다는 점에 유의하십시오. 예를 들어 (0) 또는 다른 표현식을 사용할 수 없기 때문에 이것이 기본 초기화에만 유용합니다.

객체를 기본값이 아닌 값으로 초기화하는 데 사용할 수 있는 fill_n, memset 등을 사용하여 동일한 메모리를 초기화하는 다른 방법이 있습니다.

예시

#include<iostream>
int main() {
   int myArray[10];
   
   // Initialize to 0 using memset
   memset( myArray, 0, 10 * sizeof( int ));    
   
   // Using a loop assigns the value 1 to each element
   std::fill_n(array, n, 1);    
}