_set_new_mode

new設定 的 malloc 處理常式模式。

語法

int _set_new_mode( int newhandlermode );

參數

newhandlermode
newmalloc 處理常式模式;有效值為 0 或 1。

傳回值

傳回為 malloc 設定的前一個處理常式模式。 傳回值 1 表示,在未配置記憶體時, malloc 先前稱為 new 處理常式常式;傳回值 0 表示它沒有。 如果自 newhandlermode 變數不等於 0 或 1,則會傳回 -1。

備註

C++ _set_new_mode 函式會設定 的 newmalloc 處理常式模式。 處理常式 new 模式會指出在失敗 malloc 時,是否呼叫 由 所 _set_new_handler 設定的 new 處理常式常式。 根據預設, malloc 不會在配置記憶體失敗時呼叫 new 處理常式常式。 您可以覆寫此預設行為,如此一來,當記憶體配置失敗時 mallocnewmalloc 呼叫處理常式常式 new 的方式與運算子因相同原因而失敗。 如需詳細資訊,請參閱 new C++ 語言參考 中的 delete 運算子。 若要覆寫預設值,請及早在程式中呼叫:

_set_new_mode(1);

在您的程式早期或與 Newmode.obj 連結(請參閱 連結選項 )。

這個函式會驗證其參數。 如果 newhandlermode 為 0 或 1 以外的任何專案,函式會叫用不正確參數處理常式,如參數驗證 中所述 。 如果允許繼續執行, _set_new_mode 會傳回 -1,並將 設定 errnoEINVAL

根據預設,此函式的全域狀態會限定于應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。

需求

常式 必要的標頭
_set_new_mode <new.h>

如需相容性詳細資訊,請參閱相容性

另請參閱

記憶體配置
calloc
free
realloc
_query_new_handler
_query_new_mode