_set_new_mode
malloc 関数に対する new ハンドラーのモードを設定します。
int _set_new_mode(
int newhandlermode
);
パラメーター
- newhandlermode
malloc 関数に対する new ハンドラーのモード (有効値は 0 または 1)。
戻り値
malloc 関数に対して設定されていた以前のハンドラー モードを返します。 メモリの割り当てに失敗したときに malloc 関数が new ハンドラー ルーチンを呼び出すモードだった場合は、1 を返します。失敗しても new ルーチンを呼び出さないモードだった場合は 0 を返します。 newhandlermode 引数が 0 または 1 以外の場合は –1 を返します。
解説
C++ の _set_new_mode 関数は、malloc 関数に対する new ハンドラーのモードを設定します。 メモリの割り当てに失敗した場合、new ハンドラーのモードに応じて、malloc 関数が _set_new_handler で設定されている new ハンドラー ルーチンを呼び出すかどうかが決まります。 既定では、malloc 関数はメモリの割り当てに失敗しても new ハンドラー ルーチンを呼び出しません。 既定の動作をオーバーライドすると、new 演算子がメモリの割り当てに失敗したときと同じように、malloc 関数がメモリの割り当てに失敗した場合にも、malloc 関数は new ハンドラーのルーチンを呼び出すことができます。 詳細については、『C++ Language Reference』の new および delete の各演算子の説明を参照してください。 既定の動作をオーバーライドするには、プログラム内の早い段階で次の関数を呼び出すか、または Newmode.obj とリンクします。
_set_new_mode(1)
「リンク オプション」を参照してください。
この関数は、パラメーターを検証します。 newhandlermode が 0 または 1 以外の場合、この関数は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、**_**set_new_mode は -1 を返し、errno を EINVAL に設定します。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_set_new_mode |
<new.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
同等の .NET Framework 関数
該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。