_callnewh는 메모리 할당 실패를 처리하기 위해 핸들을 호출합니다. 이 핸들은 일부 메모리를 해제하려고 시도하거나 일정 시간 동안 기다리거나 직접 예외를 발생시킬 수 있습니다. 핸들 호출이 _callnewh(size) != 0을 성공적으로 반환하면 new는 호출이 _callnewh(size) == 0에 실패하면 다시 적용을 시도합니다. 이상. _callnewh(size) != 0,那么new会再一次尝试申请,如果调用失败_callnewh(size) == 0,则抛出相关异常。
if (size == SIZE_MAX)说明申请的对象数太多(size_t理论上能表达任何对象的数量)。else
if (size == SIZE_MAX)는 신청한 개체 수가 너무 많다는 의미입니다(size_t는 이론적으로 모든 개체의 수를 표현할 수 있음). else는 일반적인 애플리케이션 오류입니다. std_bad_array_new_length 및 std_bad_alloc은 표준 라이브러리의 해당 예외를 참조합니다.
_callnewh는 메모리 할당 실패를 처리하기 위해 핸들을 호출합니다. 이 핸들은 일부 메모리를 해제하려고 시도하거나 일정 시간 동안 기다리거나 직접 예외를 발생시킬 수 있습니다. 핸들 호출이
_callnewh(size) != 0
을 성공적으로 반환하면 new는 호출이_callnewh(size) == 0
에 실패하면 다시 적용을 시도합니다. 이상._callnewh(size) != 0
,那么new会再一次尝试申请,如果调用失败_callnewh(size) == 0
,则抛出相关异常。if (size == SIZE_MAX)
说明申请的对象数太多(size_t理论上能表达任何对象的数量)。else
if (size == SIZE_MAX)
는 신청한 개체 수가 너무 많다는 의미입니다(size_t는 이론적으로 모든 개체의 수를 표현할 수 있음).else
는 일반적인 애플리케이션 오류입니다. std_bad_array_new_length 및 std_bad_alloc은 표준 라이브러리의 해당 예외를 참조합니다.