_set_new_mode

Задает режим обработчика new для malloc.

Синтаксис

int _set_new_mode( int newhandlermode );

Параметры

newhandlermode
new Режим обработчика для malloc; допустимое значение равно 0 или 1.

Возвращаемое значение

Возвращает предыдущий режим обработчика, заданный для malloc. Возвращаемое значение 1 указывает, что при сбое выделения памяти, malloc ранее называемой new подпрограммой обработчика; возвращаемое значение 0 указывает на то, что этого не произошло. newhandlermode Если аргумент не равен 0 или 1, возвращает значение -1.

Комментарии

Функция C++ _set_new_mode задает режим обработчика new для malloc. Режим new обработчика указывает, следует ли при сбое вызывать подпрограмму new обработчика, malloc заданную параметром _set_new_handler. По умолчанию malloc не вызывает подпрограмму обработчика new при сбое выделения памяти. Это поведение по умолчанию можно переопределить, чтобы в случае malloc сбоя выделения памяти вызывалась подпрограмма new обработчика так же, malloc как new и оператор при сбое по той же причине. Дополнительные сведения см. в операторах new и delete в справочнике по языку C++. Чтобы переопределить значение по умолчанию, вызовите:

_set_new_mode(1);

на ранних этапах программы или создание ссылки с помощью Newmode.obj (см. раздел Параметры ссылки).

Эта функция проверяет свои параметры. Если newhandlermode имеет значение, отличное от 0 или 1, функция вызывает обработчик недопустимых параметров, как описано в разделе Проверка параметров. Если выполнение разрешено продолжать, _set_new_mode возвращает значение -1 и задает значение errnoEINVAL.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см. статью Глобальное состояние в CRT.

Требования

Подпрограмма Обязательный заголовок
_set_new_mode <new.h>

Дополнительные сведения о совместимости см. в разделе Compatibility.

См. также раздел

Выделение памяти
calloc
free
realloc
_query_new_handler
_query_new_mode