CArray::RelocateElements

Relocates data to a new buffer when the array should grow or shrink.

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

Parameters

  • pNewData
    A new buffer for the array of elements.

  • pData
    The old array of elements.

  • nCount
    Number of elements in the old array.

Remarks

pNewData is always large enough to hold all the pData elements.

The CArray implementation uses this method to copy the old data to a new buffer when the array should grow or shrink (when SetSize or FreeExtra are called). The default implementation just copies the data.

For arrays in which an element contains a pointer to one of its own members, or another structure contains a pointer to one of the array elements, the pointers are not updated in plain copy. In this case, you can correct pointers by implementing a specialization of RelocateElements with the relevant types. You are also responsible for data copying.

Requirements

Header: afxtempl.h

See Also

Reference

CArray::SetSize

CArray::FreeExtra