YB 님이 쓰신 글 :
: new또는 malloc로 동적할당을 하는데
:
: malloc은 동적할당 실패시 null로 반환되어 이걸로 예외처리하면 되는데
:
: new로 사용할때는 어떻게 해야되나요???
:
new 가 실패하면 예외가 발생하니 try~catch 로 감싸주시거나
try
{
T *p = new T(args);
}
catch (std::exception & e)
{
// 할당 실패
}
std::nothrow 를 쓰시면 어떨까 싶습니다.
T *p = new (std::nothrow) T(args);
if ( p == nullptr )
{
// 할당 실패
}
참고
https://en.cppreference.com/w/cpp/memory/new/nothrow
|