下面是我定义的指针结构:
struct stRect
{
RECT rcDrawRect;
stRect* pNext;
};
typedef stRect* pStRect;
pStRect Vec,vHead;以及为节点分配空间:
Vec=new stRect;
if (Vec!=NULL)
{
Vec->pNext=NULL;
Vec->bSelected=FALSE;
}
Vec->pNext=vHead;//头插入
vHead=Vec;可是在删除的时候,出现为题,请教大虾,在线等~(要包括头删除,中间节点的删除)
小弟新手,请详细点`````

解决方案 »

  1.   

    struct stRect
    {
    RECT rcDrawRect;
    stRect* pNext;
    stRect()
    {
        pNext = NULL;
    }
    ~stRect()
    {
        if(pNext != NULL)
           delete pNext;
    }
    };
      

  2.   

    Vec=new stRect;
    ....
    delete Vec;
    即可.
      

  3.   

    以及为节点分配空间:
    Vec=new stRect;
    if (Vec!=NULL)
    {
    Vec->pNext=NULL;
    Vec->bSelected=FALSE;
    }
    Vec->pNext=vHead;//头插入
    vHead=Vec;//////////////插入结点
    Vec=new stRect;
    if(Vec)
    {
      vHead->next=Vec;
      Vec->next=NULL;
    }
    //////////删除结点
    寻找到Vec结点前继结点pCur;
    开始删除:
    pCur->next=Vec->next;
    delet Vec;