NULL 포인터를 삭제해도 안전합니까?
그리고 좋은 코딩 스타일입니까?
make_shared
(C ++ 11)와 make_unique
(C ++ 14) 프로그램이 포함되어 있어야합니다 제로 의 new
와delete
new
나 delete
. 표준 구성 요소가 작업을 수행 할 수없는 리소스를 관리하도록 설계된 클래스는 물론 필요한 작업을 수행 할 수 있지만 요점은 최종 사용자 코드가 아니라 관리하는 메모리로 추악한 작업을 수행 한다는 것 입니다. 그래서, 자신의 라이브러리 / 헬퍼 클래스가 할 수 있도록 new
/ delete
, 그 대신 그 클래스를 사용합니다.
delete
. 대신 RAII 를 사용하십시오 . 즉 사용된다std::vector<T> v(100);
대신T* p = new T[100];
, 스마트 같은 포인터 사용unique_ptr<T>
및shared_ptr<T>
등 삭제의 돌봐 대신 원시 포인터