리소스를 보면 두 가지 방법으로 메모리를 할당하는 동시에 작업을 완료하는 데 충분한 메모리가 있는지 확인할 수 있습니다.메모리가 부족한 상태에서 C++로 메모리를 올바르게 할당하는 방법
1 은)는 표준 : : bad_alloc 뿐이다을 반환 할 것이기 때문에))
try { ptr = new unsigned char[num_bytes]; } catch(...) {}
2? (시도/캐치에서 '새로운'작업을 감싸는 '새로운'작업 후에는 null에 할당 된 포인터를 확인 .
ptr = new unsigned char[num_bytes]; if(ptr == NULL) { ... }
어느 것이 옳은가요? 둘 다 작동합니까? 아마 1과 2 둘 다해야할까요? 1이 올바른지 있도록
감사합니다,
jbu
이것은 아마도 내가 대신해야 할 코드 양을 줄이기 위해서입니다. – jbu
@jbu : 일부 코드는 예외를 제외하고 컴파일됩니다. 이것은 비표준이며,이 경우 컴파일러 문서를 읽을 필요가 있습니다 만, 실패하면'new'가 0을 반환 할 가능성이 있습니다. –