_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
模式會指出在失敗malloc
時,是否呼叫 由所_set_new_handler
設定的new
處理程式例程。 根據預設, malloc
不會在配置記憶體失敗時呼叫 new
處理程式例程。 您可以覆寫此預設行為,如此一來,當記憶體配置失敗時malloc
,new
malloc
呼叫處理程式例程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