wangzhihongji
wangzhihongji
采纳率0%
2017-05-11 07:42 阅读 2.7k

C++链表释放内存问题,总是引起内存泄漏

对于
struct whatever
{
int a;
whatever * next;
};
list[whatever * ] A=new list[whatever * ];
list[list [ whatever * ]]B;
A.push_back(...);
A.push_back(...);
B.push_back(A);

(打不出来<>,所以用[]代替了。。。)
来说:这种应该怎么释放内存?
如果delete A;是不是只是把A中存放的指针删掉了,而没有删掉指针指向的内存?
如果
for(auto i=A.begin();i!=A.end();i++)
{
whatever *a=*i;
whatever *p1;
whatever *p2;
p1=p2=a;
while(p2->next!=NULL)
{
p1=p2->parent;
delete p2;
p2=p1;
}
p2=p1=NULL;
}
这样的话是不是把A中的内存和指针都清除了?那B中的指针是会变成野指针么?
因为需要频繁插入和删除,所以必须需要使用list。。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

相关推荐