방프리

17.07.17. Effective C++ 1. C++에 왔으면 C++의 법을 따릅시다. (항목16) 본문

C++/Effective C++

17.07.17. Effective C++ 1. C++에 왔으면 C++의 법을 따릅시다. (항목16)

방프리 2020. 1. 8. 18:46

항목 16: new 및 delete를 사용할 때는 형태를 반드시 맞추자

 

프로그래밍을 할 때 개발자는 한정적인 메모리 자원을 가지고 코딩을 하게 됩니다.

자원이 한정적이다 보니 메모리를 사용한다면?

다시 돌려놓기도 해야하죠. 이 과정을 C언어에서는 malloc, free로 이루어지고

C++에서는 new, delete를 통해 이루어집니다.

일방적으로 new만 계속 사용한다면? 진행은 되긴 됩니다만... 메모리 공간이 남아나질 않겠죠 ㅎㅎ

또 하나 반드시 알아야 할 것은 단일 객체의 생성일 때와 배열 객체의 생성일 때에 맞추어

new, delete도 다르게 해주어야 한다는 것입니다. 

단일 객체일 때에는 delete, 배열 객체일 때에는 delete [] 를 꼭 사용해야 합니다.

만약 바꾸어서 하게 된다면 그에 상응하는 오류는 직접 고치시기 바랍니다.

이것만은 잊지 말자!

 

* new 표현식에 []를 썼으면, 대응되는 delete 표현식에도 []를 써야 합니다. 마찬가지로 new 표현식에 []를 안 썼으면, 대응되는

delete 표현식에도 []를 쓰지 말아야 합니다.

Comments