New 및 Delete를 사용할 때는 형태를 반드시 맞추자!

Bogoomi·2022년 6월 6일
0

EffectiveC++

목록 보기
2/24

항목16 - New 및 Delete를 사용할 때는 형태를 반드시 맞추자!

New를 사용하면 이뤄지는 기본적인 내부동작

  1. 일단 메모리가 할당된다.
  2. 할당된 메모리에 대한 1개 이상의 생성자가 호출된다.

Delete를 사용하면 이뤄지는 기본적인 내부동작

  1. 우선 기존 할당된 메모리에 대한 1개 이상의 소멸자가 호출된다.
  2. 그 후 메모리가 해체된다.
std::string *stringPtr1 = new std::string;
std::string *stringPtr2 = new std::string[100];

delete stringPtr1;		// 객체 한 개를 삭제합니다.
delete [] stringPtr2;	// 객체의 배열을 삭제합니다.

위 코드처럼 new 표현식에 맞춰 delete 표현식을 맞춰주자가 핵심 내용이다.
new에 [ ] 를 썼다면 여기에 대응되는 delete[ ] 를 써주고 아니라면 delete를 쓰자.

잊지말자!

  • new 표현식에 [ ]를 썼으면, 대응되는 delete 표현식에도 [ ]를 써야합니다.
  • new 표현식에 [ ]를 안썼으면, 대응되는 delete 표현식에도 [ ]를 쓰지 말아야합니다.
profile
개에에에바알

0개의 댓글