_set_new_mode
のハンドラー モードを new
設定します malloc
。
構文
int _set_new_mode( int newhandlermode );
パラメーター
newhandlermode
new
のハンドラー モード malloc
。有効な値は 0 または 1 です。
戻り値
malloc
の以前のハンドラー モードのセットを返します。 戻り値 1 は、メモリの割り当てに失敗した場合、以前はハンドラー ルーチンと呼ばれnew
、malloc
戻り値 0 は、割り当てられなかったことを示します。 引数が newhandlermode
0 または 1 と等しくない場合は、-1 を返します。
解説
C++ _set_new_mode
関数は、ハンドラー モードを設定しますnew
malloc
。 ハンドラー モードは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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示