Sdílet prostřednictvím


_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