_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