动态申请内存空间,用完后的释放有关问题

动态申请内存空间,用完后的释放问题。
node* searchp=new node;
searchp=Poly->next;
while(searchp!=NULL)
{
  searchp=searchp->next;
}
如果我想释放searchp;怎么写呢?delete [] searchp吗?
可是这个时候searchp已经=NULL了,还释放有用吗?
还有如果使用完后searchp不等于NULL,而是指向有用的节点。该怎么释放呢?

------解决方案--------------------
这样做非常危险:node* searchp=new node;这句话中new出来的node,你再也收不回去了...因为下面的searchp=Poly->next;这一句改变了searchp。
------解决方案--------------------
楼主不需要new 一个节点出来,因为你的searchp只是用来访问的
node* searchp;
searchp=Poly->next;
while(searchp!=NULL)

访问当前节点数据;
searchp=searchp->next;
}

删除的时候 while(search)
{
node *temp = search;
search = searchp->next;
delete temp;
}