In my MFC application in which I have a CArray Object defined like this;

CArray<CCard, CCard&> m_CardArray; //this array contains the cards owned by a particular player

The CCard objects are dynamically created in the heap throughout the program and added to the m_CardArray;

.......
.......

CCard *pCard = new CCard;
m_CardArray.Add(*pCard);
.......
.......

Here pCard is a local pointer

My problem is how to delete the CCard objects created on the heap like this so that no memory leak would be detected.

Would using,

m_CardArray.RemoveAll();

OR

m_CardArray.RemoveAt(...., .....);

delete the the CCard objects created on the heap?

Please Help me.

Mitesh