[C++] 동적 할당 #13
1. 동적 할당이란?
프로그램이 실행되는 도중을 런 타임 이라고 합니다.
프로그램의 메모리 할당은 일반적인 경우 컴파일 타임 에 결정되지만,
동적 할당을 이용한다면 프로그램이 실행되는 도중인 런 타임 에 메모리를 할당받을 수 있게 됩니다.
2. C++의 동적 할당
C++에서는 new
연산자로 메모리 동적 할당을 delete
연산자로 메모리 해제를 할 수 있습니다.
2-1. new 연산자
C++에서 new
연산자는 아래와 같이 사용합니다.
1
2
3
4
5
int main() {
int* numberPointer = new int;
return 0;
}
위 코드는 int
자료형의 메모리를 할당하고
그 메모리의 위치를 numberPointer
라는 포인터 변수에 저장하는 코드입니다.
위와 같이 메모리 동적 할당으로 받은 값은 메모리의 이름이 없으므로, 포인터로만 접근할 수 있습니다.
2-2. delete 연산자
메모리를 동적 할당한 후 사용하지 않는 메모리는 메모리 누수 가 발생하지 않게 해제해줘야 합니다.
1
2
3
4
5
6
7
int main() {
int* numberPointer = new int;
delete numberPointer;
return 0;
}
위 코드는 동적 할당된 메모리 numberPointer
를 해제해주는 코드입니다.
delete 연산자는 new 연산자로 할당된 메모리를 해제할 때에만 사용해야 합니다.
또한 동적 할당된 메모리를 해제하지 않으면 메모리가 한 공간을 계속 점유하는 메모리 누수 가 발생할 수 있습니다.
This post is licensed under
CC BY 4.0
by the author.