Поделиться через


_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 не удается выделить память, malloc обработчик вызывает new подпрограмму обработчика так же, как new оператор делает, когда он завершается сбоем по той же причине. Дополнительные сведения см. в справочнике newпо языку C++ и delete операторам. Чтобы переопределить значение по умолчанию, вызовите:

_set_new_mode(1);

в начале программы или ссылки с Newmode.obj (см. раздел "Параметры ссылки").

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

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

Требования

Маршрут Обязательный заголовок
_set_new_mode <new.h>

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

См. также

Распределение памяти
calloc
free
realloc
_query_new_handler
_query_new_mode