wangzhihongji 2017-05-11 07:42 采纳率: 0%
浏览 3080

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条回答

  • shen_wei 2017-05-11 08:05
    关注
    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名