_set_new_mode

のハンドラー モードを new 設定します malloc

構文

int _set_new_mode( int newhandlermode );

パラメーター

newhandlermode
new のハンドラー モード malloc。有効な値は 0 または 1 です。

戻り値

malloc の以前のハンドラー モードのセットを返します。 戻り値 1 は、メモリの割り当てに失敗した場合、以前はハンドラー ルーチンと呼ばれnewmalloc戻り値 0 は、割り当てられなかったことを示します。 引数が newhandlermode 0 または 1 と等しくない場合は、-1 を返します。

解説

C++ _set_new_mode 関数は、ハンドラー モードを設定しますnewmalloc。 ハンドラー モードはnew、失敗した場合に、malloc設定に基づいて_set_new_handlerハンドラー ルーチンをnew呼び出すかどうかを示します。 既定では、 malloc メモリの割り当てに失敗した new 場合にハンドラー ルーチンを呼び出しません。 この既定の動作をオーバーライドして、メモリの割り当てに失敗した場合mallocに、malloc同じ理由で失敗した場合と同じ方法newでハンドラー ルーチンを呼び出newすことができます。 詳細については、「C++ 言語リファレンス」の new and 演算子を参照してくださいdelete。 既定の動作をオーバーライドするには、次の関数を呼び出します。

_set_new_mode(1);

プログラムの早い段階で、または Newmode.obj にリンクします (リンク オプションを参照)。

この関数は、そのパラメーターを検証します。 0 または 1 以外の場合newhandlermode、「パラメーターの検証」で説明されているように、関数は無効なパラメーター ハンドラーを呼び出します。 実行の続行が許可されている場合、_set_new_modeは -1 を返し、次にEINVAL設定しますerrno

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

必要条件

ルーチンによって返される値 必須ヘッダー
_set_new_mode <new.h>

互換性の詳細については、「 Compatibility」を参照してください。

関連項目

メモリ割り当て
calloc
free
realloc
_query_new_handler
_query_new_mode