怎么释放 堆 内存

如何释放 堆 内存
//堆内存的分配

CGraph *pGraph = new CGraph(XXX,XXX);
m_PtrArray.Add(pGraph);


1,如何delete以上的堆内存?

2,如果我希望m_PtrArray这个数组在程序运时一直保持有效是不是不应释放?
还是在程序结束时释放?
------解决方案--------------------
1. 遍历m_PtrArray,取出元素指针,调用delete ?
2. 是的
------解决方案--------------------
1、必须要遍历数组挨个delete
2、生命周期由你来控制
------解决方案--------------------

CGraph *pGraph(NULL);
for (long i=0,long lCount = m_PtrAToSatrt.GetSize();i<lCount;++i)
{
       if(pGraph = m_PtrAToSatrt.GetAt(i))
       {
              delete pGraph;
              pGraph = NULL;
       }
}
m_PtrAToSatrt.RemoveAll();