_set_new_mode
new
Nastaví režim obslužné rutiny pro malloc
.
Syntaxe
int _set_new_mode( int newhandlermode );
Parametry
newhandlermode
new
Režim obslužné rutiny pro malloc
; platná hodnota je 0 nebo 1.
Vrácená hodnota
Vrátí předchozí režim obslužné rutiny nastaven pro malloc
. Návratová hodnota 1 značí, že při selhání přidělení paměti se malloc
dříve volala new
rutina obslužné rutiny. Návratová hodnota 0 značí, že ne. Pokud se newhandlermode
argument nerovná 0 nebo 1, vrátí hodnotu -1.
Poznámky
Funkce C++ _set_new_mode
nastaví new
režim obslužné rutiny pro malloc
. Režim new
obslužné rutiny označuje, zda je při selhání malloc
volání rutiny new
obslužné rutiny nastavena ._set_new_handler
Ve výchozím nastavení nevolá rutinu new
obslužné rutiny při malloc
selhání přidělení paměti. Toto výchozí chování můžete přepsat tak, malloc
aby v případě malloc
selhání přidělení paměti volaly rutinu new
obslužné rutiny stejným způsobem jako new
operátor v případě selhání z stejného důvodu. Další informace najdete v referenční new
dokumentaci jazyka C++ a delete
operátory. Pokud chcete přepsat výchozí nastavení, zavolejte:
_set_new_mode(1);
v rané fázi programu nebo propojení s Newmode.obj (viz možnosti odkazu).
Tato funkce ověří jeho parametr. Pokud newhandlermode
je něco jiného než 0 nebo 1, funkce vyvolá neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, _set_new_mode vrátí hodnotu -1 a nastaví errno
hodnotu EINVAL
.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_set_new_mode |
<new.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Viz také
Přidělení paměti
calloc
free
realloc
_query_new_handler
_query_new_mode