1. new에는 delete, new 배열에는 delete[]
배열에 대해서 new 메모리 할당을 하게 되면 반드시 delete[] 를 통해서 메모리를 해제해 줘야한다. 대괄호 쌍([])을 붙여 줘야만 delete가 '포인터가 배열을 가리키고 있구나'라고 가정하게 된다. 그렇지 않으면 단일 객체라고 간주하게 된다.
이것만은 잊지 말자!
- new 표현식에 []를 썼으면, 대응되는 delete 표현식에도 []를 써야 한다. 마찬가지로 new 표현식에 []를 안 썼으면, 대응되는 delete 표현식에도 []를 쓰지 말아야 한다.
'C++ > Effective C++' 카테고리의 다른 글
[Effective C++] 18. 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자 (0) | 2020.08.06 |
---|---|
[Effective C++] 17. new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자 (0) | 2020.08.03 |
[Effective C++] 15. 자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자 (0) | 2020.08.03 |
[Effective C++] 14. 자원 관리 클래스의 복사 동작에 대해 진지하게 고찰하자 (0) | 2020.08.03 |
[Effective C++] 13. 자원 관리에는 객체가 그만! (0) | 2020.08.03 |