How to destroy the array

Simple arrays can be simply deleted. Certain arrays of pointers may require calling a member function to delete the objects pointed to.

If an array consists of T or R type elements, it can be destroyed by simply deleting it:

      
       
      
      delete array;
     

Where the array is either a CArrayPtrFlat or CArrayPtrSeg object and the elements are pointers to CBase derived objects, then these objects should first be destroyed by calling the ResetAndDestroy() member function:

      
       
      
      array->ResetAndDestroy();
delete array;
     

Notes

  • The RArray<class T> and RPointerArray<class T> types are normally allocated on the program stack and are not deleted. However, their array buffers are allocated on the heap and it is important that these arrays are handled correctly to avoid memory leaks.

  • As a minimum, their Close() functions must be called before the arrays go out of scope. Additionally, for the RPointerArray<class T> type, the ResetAndDestroy() function may be called if the objects represented by the array need to be deleted before the array goes out of scope.