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 |