set_new_handler
operator new がメモリを割り当てる試行が失敗すると呼び出されるユーザー定義関数をインストールします。
構文
new_handler set_new_handler(
new_handler _Pnew
) throw( );
パラメーター
- _Pnew
インストールする new_handler。
戻り値
最初の呼び出しの 0 およびそれ以降の呼び出しの前に new_handler。
解説
関数で維持する new ハンドラー の静的なポインターで _Pnew を保存し、前にポインターに格納されている値を返します。 new ハンドラーは operator new (size_t) で使用されます。
使用例
// new_set_new_handler.cpp
// compile with: /EHsc
#include<new>
#include<iostream>
using namespace std;
void __cdecl newhandler( )
{
cout << "The new_handler is called:" << endl;
throw bad_alloc( );
return;
}
int main( )
{
set_new_handler (newhandler);
try
{
while ( 1 )
{
new int[5000000];
cout << "Allocating 5000000 ints." << endl;
}
}
catch ( exception e )
{
cout << e.what( ) << endl;
}
}
5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 5000000 の int を割り当てる。 new_handler が呼び出される: 不正な割り当て
必要条件
新しい <ヘッダー: >
名前空間: std