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. 자세한 내용은 플랫폼 호출 예제.