局部变量和指针混淆的一段内存泄露
class CListNode{public:CListNode();CListNode(int i);int m_Data;CListNode *m_Next;};CListNode::CListNode():m_Data(0), m_Next(0){}CListNode::CListNode(int i):m_Data(i), m_Next(0){}class CList{public:CList();CList(int i);CList(CList *pNew);~CList();int NextNode();void _InsertAfter(int iNew);void _DeleteAfter();void _DeleteFront();void _PrintData();CListNode m_Head;private:CListNode *c_m_Head;int m_iCount;protected:};CList::CList(){m_Head.m_Next = NULL;c_m_Head = &m_Head;cout<<"1:"<<&m_Head<<endl;}CList::CList(int i){ _InsertAfter(i);}CList::~CList(){m_Head = *c_m_Head;CListNode *p;while( m_Head.m_Next!=NULL ){p = m_Head.m_Next;m_Head = *(p->m_Next);delete p;}}void CList::_InsertAfter(int iNew){CListNode *p= new CListNode(iNew);p->m_Next = m_Head.m_Next;m_Head.m_Next = p;}void CList::_DeleteFront(){}void CList::_DeleteAfter(){CListNode *p;p = m_Head.m_Next;m_Head.m_Next = p->m_Next;delete p;}void CList::_PrintData(){m_Head = *c_m_Head;while( m_Head.m_Next!=NULL ){m_Head = *(m_Head.m_Next);cout<<m_Head.m_Data<<endl;}}int main(){CList *clist = new CList;int i;for(i=0; i<10; i++){clist->_InsertAfter(i);}clist->_PrintData();delete clist;return 0;}