new 연산자 (CRT)

힙에서 메모리 블록을 할당합니다.

void *__cdecl operator new(
   size_t count
);
void *__cdecl operator new(
   size_t count, 
   void * object
) throw();
void *__cdecl operator new(
   size_t count, 
   const std::nothrow_t&
) throw();

매개 변수

  • 개수
    할당 크기를 지정 합니다.

  • object
    개체를 만들어야 하는 메모리 블록에 대 한 포인터입니다.

반환 값

최하위 바이트 주소를 새로 할당 된 저장소에 대 한 포인터입니다.

설명

이 폼의 operator new 달리 새 벡터형 새 스칼라로 알려진 (new 연산자).

이 연산자의 첫 번째 폼의 비배치 양식으로 알려져 있습니다.두 번째 폼이이 연산자의 배치 형식으로 라고 하 고 세 번째 폼이 연산자 nonthrowing, 배치 형식입니다.

연산자의 첫 번째 폼은 컴파일러에 의해 정의 된 및 new.h 프로그램에 포함 시킬 필요가 없습니다.

delete 연산자 사용 하 여 할당 된 메모리를 해제 operator new.

New 연산자는 null을 반환 하거나 실패 한 경우 예외를 throw 여부를 구성할 수 있습니다.참조 하십시오 의 새로운 운영자를 삭제 하 고 에 대 한 자세한 내용은.

도끼를 제외 하거나 동작을 아니요 도끼 CRT operator new 처럼 동작 new 연산자 표준 C++ 라이브러리에서.

요구 사항

루틴

필수 헤더

new

<new.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

라이브러리

모든 버전의 C 런타임 라이브러리.

예제

다음 스칼라 비배치 형식으로 사용 하는 방법을 보여 줍니다. operator new.

// crt_new1.cpp
#include <stdio.h>
int main() {
   int * i = new int(6);
   printf("%d\n", *i);
   delete i;
}

다음의 스칼라로 배치 형식을 사용 하는 방법을 보여 줍니다. operator new.

// crt_new2.cpp
#include <stdio.h>
#include <new.h>
int main() {
   int * i = new int(12);
   printf("*i = %d\n", *i);
   // initialize existing memory (i) with, in this case, int(7)
   int * j = new(i) int(7);   // placement new
   printf("*j = %d\n", *j);
   printf("*i = %d\n", *i);
   delete i;   // or, could have deleted j
}

다음 스칼라, 배치, 아니오 throw 형식으로 사용 하는 방법을 보여 줍니다. operator new.

// crt_new3.cpp
#include <stdio.h>
#include <new.h>
int main() {
   // allocates memory, initialize (8) and if call fails, new returns null
   int * k = new(std::nothrow) int(8);   // placement new
   printf("%d\n", *k);
   delete k;
}

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

메모리 할당