TNB Library
ファイル | 関数
NEW/DELETE関係

ファイル

ファイル  TnbNewDebug.h
 開発用メモリ状態管理関係のヘッダ.
 
ファイル  TnbNewThrow.h
 メモリ確保例外関係のヘッダ.
 

関数

template<typename TYP >
void PlacementDelete (int iLen, TYP *P)
 PLACEMENT DELETE. [詳解]
 
template<typename TYP >
void PlacementDelete (TYP *P)
 PLACEMENT DELETE. [詳解]
 
template<typename TYP >
void PlacementNew (int iLen, TYP *P)
 PLACEMENT NEW. [詳解]
 
template<typename TYP >
void PlacementNew (TYP *P)
 PLACEMENT NEW. [詳解]
 

詳解

関数詳解

◆ PlacementDelete() [1/2]

void TNB::PlacementDelete ( int  iLen,
TYP *  P 
)

PLACEMENT DELETE.

指定型の配列に対し、デストラクタを実行します。

注意
メモリは解放しません。
参照
PlacementNew
引数
iLen配列数
P指定型の配列
必要ファイル
TnbNewPlacement.h
日付
06/08/30 新規

TnbNewPlacement.h164 行目に定義があります。

◆ PlacementDelete() [2/2]

void TNB::PlacementDelete ( TYP *  P)

PLACEMENT DELETE.

指定型のポインタに対し、デストラクタを実行します。

注意
メモリは解放しません。
参照
PlacementNew
引数
P指定型のポインタ
必要ファイル
TnbNewPlacement.h
日付
06/08/07 新規

TnbNewPlacement.h145 行目に定義があります。

◆ PlacementNew() [1/2]

void TNB::PlacementNew ( int  iLen,
TYP *  P 
)

PLACEMENT NEW.

指定型の配列に対し、コンストラクタを実行します。

覚え書き
本関数を使うと、すでに確保されたメモリに対して、コンストラクタを実行することが出来ます。 動的にサイズの変化するコレクションでの使用や、 特殊な方法で確保したメモリに対して使用の使用を想定しています。
注意
メモリは確保しません。すでに確保されたメモリに対し処理します。
本関数実行したメモリは、解放前に必ず、 PlacementDelete() を実行させます。
参照
PlacementDelete
使用例

    CStr* ps = (CStr*)malloc(sizeof(CStr) * 5); //new以外で確保
    PlacementNew(5, ps);                     //コンストラクタ実行
    ps[0] = "ABCD";                           //普通のクラスインスタンスとして使用可能     
    ps[1] = ps[0] + "ABCD"; 
        ;
    PlacementDelete(5, ps);
    free(ps);                                 //メモリ解放
    
引数
iLen配列数
P指定型の配列
必要ファイル
TnbNewPlacement.h
日付
06/08/30 新規

TnbNewPlacement.h119 行目に定義があります。

◆ PlacementNew() [2/2]

void TNB::PlacementNew ( TYP *  P)

PLACEMENT NEW.

指定型のポインタに対し、コンストラクタを実行します。

覚え書き
本関数を使うと、すでに確保されたメモリに対して、コンストラクタを実行することが出来ます。 動的にサイズの変化するコレクションでの使用や、 特殊な方法で確保したメモリに対して使用の使用を想定しています。
注意
メモリは確保しません。すでに確保されたメモリに対し処理します。
本関数実行したメモリは、解放前に必ず、 PlacementDelete() を実行させます。
参照
PlacementDelete
使用例

    CStr* ps = (CStr*)malloc(sizeof(CStr) * 2); //new以外で確保
    PlacementNew(&ps[0]);                     //コンストラクタ実行
    PlacementNew(&ps[1]);
    ps[0] = "ABCD";                           //普通のクラスインスタンスとして使用可能     
    ps[1] = ps[0] + "ABCD"; 
        ;
    PlacementDelete(&ps[0]);                  //デストラクタ実行
    PlacementDelete(&ps[1]);
    free(ps);                                 //メモリ解放
    
引数
P指定型のポインタ
必要ファイル
TnbNewPlacement.h
日付
06/08/07 新規

TnbNewPlacement.h80 行目に定義があります。