共用方式為


_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