본문 바로가기

C++

[C++] new & delete

C++에서 동적할당을 할 때에는 new 키워드를, 소멸할 때는 delete 키워드를 사용한다.


* 동적할당이란?

실행시간동안 사용할 메모리 공간을 할당하는 것이다.

프로세스의 힙 영역에 할당되므로 프로세스가 종료되면 메모리가 해제된다.

하지만 실행 중 메모리 낭비를 줄이기 위해 명시적으로 메모리 할당을 해제해주어야 한다.

Java와 C#에서는 가비지 컬렉터가 존재하여 자동으로 해제가 되지만,

C/C++에서는 가비지 컬렉터가 존재하지 않으므로 프로그래머가 함수를 사용해 해제해야 한다.



사용 예


(할당)

int *ptr = new int;
double *ptr = new double;
int *arr = new int [5];
double *arr = new double[5];
char *str = new char[10];


(소멸)

delete ptr1;
delete []arr;
delete []str;


힙에 할당된 변수는 참조자의 선언으로 접근이 가능하다.

int *ptr = new int;
int &ref = *ptr;
ref = 20;
cout << *ptr << endl; // 20 출력


'C++' 카테고리의 다른 글

[C++] 클래스  (0) 2019.03.08
[C++] 구조체  (0) 2019.03.08
[C++] 참조자(Reference)와 함수  (0) 2019.03.05
[C++] 참조자(Reference)  (0) 2019.03.05
[C++] 기본 자료형  (0) 2019.03.05