본문 바로가기

지식창고/프로그래밍

(C++)new와 delete란?

반응형

c++에도 메모리를 할당 및 해제를 해줄 수 있는 키워드가 존재합니다.

 

new 키워드가 동적 메모리를 할당 하는 키워드이며,

 

delete 키워드가 new로 할당한 동적 메모리를 할당해주는 키워드 입니다.

 

이번에는 크게 예제를 가지고 오지 않아도 될 것 같아

간단하게 어떻게 할당하고 해제하는지에 관해서 간단하게 작성해 두도록 하겠습니다-

 

new

의미 : 동적 메모리를 할당하는 것.

 

사용방법

int형 변수 할당 : int *p1 = new int;

double형 변수 할당 : double *p2 = new double;

길이가 3 int형 배열 할당 : int *arr1 = new int[3];

길이가 3 double형 배열 할당 : double *arr2 = new double[3];

char형 포인터 name 할당 : char *name = new char[strlen(_name) + 1];

 

 

delete

의미 : new를 사용하여 메모리를 할당한 후 할당된 메모리를 해제 해주는 것.

 

new를 사용하여 메모리를 할당하였다면 반드시 delete를 통하여 메모리를 해제 해주는 것이 좋습니다.

꼭 명심하세요!!!!

(비쥬얼 스튜디오 2008버전 이상부터는 delete를 해주지 않아도 자체적으로 해제를 해주는

기능을 지원하지만 그렇다고해서 안써주는 버릇은 좋지 않다고 생각하기 때문에, 혹시 모를 메모리 누수 방지를

위하여 new와 delete 키워드는 항상 명심하고 세트로 사용하시길 권장합니다!!!)

 

int형 변수 할당 해제 : delete p1;

double형 변수 할당 해제: delete p2;

길이가 3 int형 배열 할당 해제: delete []arr1;

길이가 3 double형 배열 할당 해제: delete []arr2;

char형 포인터 name 할당 해제: delete []name;

 

참 쉽쥬~?

 

오늘은 new(동적 메모리 할당)와 delete(동적 메모리 해제)에 대해 간단히 알아보았습니다.

 

다음에 또 찾아올께용~

 

씨~ 유~ 

반응형

'지식창고 > 프로그래밍' 카테고리의 다른 글

(C++)클래스의 private의 사용방법과 접근 방법  (0) 2019.07.14
(C++)this포인터란?  (0) 2019.07.09
(C++)const static 키워드란?  (0) 2019.07.06
(C++)friend키워드란?  (0) 2019.07.06
(C++)mutable 키워드란?  (0) 2019.07.05