- 515 名前:508 [2005/05/17(火) 00:32:06 ]
- >>511-512
new の仕事はメモリアロケートと初期化(クラスのコンストラクタ呼び出し)ですが、 配置のnew( void operator new( size_t, void* ) )の仕事は与えられたポインタの指すオブジェクトの初期化しかしません。 class allocatorは、一度に任意のオブジェクト数分のメモリを確保し、必要に応じてオブジェクトの初期化をします。 オブジェクトの初期化を行うメンバー関数が、allocator::construct()です。 allocatorは、たとえばSTLのvectorなどで使われます。 ↓このメンバー関数で一度に size個分のオブジェクト格納領域を確保するので、この関数がNULLを返したらエラーと判断できます。 void* allocator::alloc( size_t size ) { return MALLOC( size * sizeof( value_type ) ); } >>513 それもチェックしました。 呼び出し側 AREA ||i.OnCreate__9CModeGameFv||, CODE, READONLY OnCreate__9CModeGameFv PROC ... MOV r0,#0xb8 BL __nw__FUi ←こいつ ... 呼ばれ側 AREA ||i.__nw__FUi||, CODE, READONLY __nw__FUi PROC
|

|