_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 и задает значение errno
EINVAL
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см. статью Глобальное состояние в CRT.
Требования
Подпрограмма | Обязательный заголовок |
---|---|
_set_new_mode |
<new.h> |
Дополнительные сведения о совместимости см. в разделе Compatibility.
См. также раздел
Выделение памяти
calloc
free
realloc
_query_new_handler
_query_new_mode