C++ new, delete
1. 개요
1.1 문서 개요
이 문서는 C++에서 메모리 동적 할당에 사용되는 new
와 delete
연산자에 관해 기록하는 문서입니다. 해당 연산자는 객체 또는 배열을 런타임에 동적으로 생성 및 소멸시키는 기능을 제공하며, C++의 메모리 관리 구조에서 핵심적인 역할을 합니다.
2. 내용
2.1 new 연산자
new
연산자는 C++에서 동적으로 메모리를 할당하는 데 사용됩니다. 사용 시 해당 타입의 객체를 생성하고, 힙(heap) 메모리에 저장된 그 객체의 포인터를 반환합니다.
2.1.1 단일 객체 할당
int* ptr = new int; // 정수형 변수에 대한 메모리 동적 할당
*ptr = 10;
2.1.2 배열 할당
int* arr = new int[5]; // 정수형 배열 5개 요소 동적 할당
2.1.3 사용자 정의 생성자 호출
class MyClass {
public:
MyClass(int a) { ... }
};
MyClass* obj = new MyClass(10);
2.2 delete 연산자
delete
연산자는 new
로 할당한 메모리를 해제할 때 사용됩니다.
2.2.1 단일 객체 해제
delete ptr;
2.2.2 배열 해제
delete[] arr;
2.3 new/delete의 특징
- 타입 안전성 보장
- 생성자 및 소멸자 자동 호출
malloc/free
대비 C++ 친화적 인터페이스 제공
3. 마무리
new
와 delete
는 C++의 메모리 동적 관리에서 기본이 되는 연산자이며, 객체 생명주기와 관련된 관리에서 중요한 도구로 활용됩니다. 이들은 생성자 및 소멸자 호출을 자동으로 수행하여 C 언어의 malloc/free
와 비교되는 명확한 구조적 장점을 갖습니다.