次の方法で共有


CArray::RelocateElements

更新 : 2007 年 11 月

配列の拡張または縮小時に新しいバッファにデータを再配置します。

template<class TYPE, class ARG_TYPE> 
AFX_INLINE void CArray<TYPE, ARG_TYPE>::RelocateElements( 
   TYPE* pNewData,
   const TYPE* pData,
   INT_PTR nCount 
);

パラメータ

  • pNewData
    配列の要素を格納する新しいバッファ。

  • pData
    元の配列の要素。

  • nCount
    元の配列の要素数。

解説

pNewData は、常にすべての pData 要素を格納できる長さになります。

CArray の実装で、配列の拡張または縮小時 (SetSize または FreeExtra が呼び出されたとき) に新しいバッファに元のデータをコピーしなければならない場合にこのメソッドが使用されます。既定の実装ではデータは単にコピーされるだけです。

配列内に、自身のメンバへのポインタを持つ要素が含まれていたり、その配列要素へのポインタを持つ別の構造体が含まれていたりする場合に、この既定のコピーでは、これらのポインタは更新されません。この場合、特化した RelocateElements を関連する型で実装することにより、ポインタを正しく更新することができます。このとき、データをコピーする必要もあります。

必要条件

ヘッダー : afxtempl.h

参照

参照

CArray::SetSize

CArray::FreeExtra