首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-06-17 
动态申请内存空间,用完后的释放问题。node* searchpnew nodesearchpPoly-nextwhile(searchp!NULL){se

动态申请内存空间,用完后的释放问题。
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;
}

热点排行