次の方法で共有


_set_new_mode

mallocnew ハンドラー モードを設定します。

構文

int _set_new_mode( int newhandlermode );

パラメーター

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

戻り値

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

解説

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

_set_new_mode(1);

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

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

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

要件

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

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

関連項目

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