Programming/C++

[C++] 동적 할당 new와 delete 사용, 메모리 누수

728x90

동적 할당

  • 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것
  • 크기가 정확히 얼마나 요구되는지 모르는 경우에 주로 사용한다.

 

 

 

C++의 동적 할당 연산자

new 연산자

  • heap에 메모리를 만들고 그 주소를 리턴한다.
  • 메모리에 공간이 없다면 NULL을 반환한다.

 

delete 연산자

  • 가리키는 주소의 메모리를 해제한다.

 

메모리 할당 사용법

타입 *변수명 = new 타입;	//메모리 할당
delete 변수명;		//메모리 할당해제

 

배열 형태의 메모리 할당 및 해제

타입 *변수명 = new 타입[크기];	//배열 형태 메모리 할당
delete[] 변수명;		//배열 형태 메모리 할당해제

 

 

 

 

메모리 누수 (Memory Leak)

필요하지 않은 메모리를 계속 점유하고 있는 현상을 말한다.

자바의 경우는 사용하지 않은 메모리를 자동으로 해제해주는 가비지 컬렉터(Garbage Collector) 기능이 있지만,

C나 C++의 경우는 없다.

그러므로, 동적할당을 했으면 꼭! 해제를 해줘야 한다.

 

new로 할당했으면 꼭 delete로 해제해주기!

728x90