免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3811 | 回复: 6
打印 上一主题 下一主题

STL中list内存管理问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-26 10:33 |只看该作者 |倒序浏览
在linux程序中,
我定义了一个list<COTAServiceQueue *>;链表,每次我都创建对象然后push_back到链表中,并且在使用完后释放该对象,由于是一个守护进程,发现程序仍然存在内存泄漏。而且使用内存检测代码,发现是因为创建该对象没有释放导致,请高手指出我的释放方法是否正确,在线等待。。。。谢谢!
释放源码如下:
           list<COTAServiceQueue *>;::iterator iexec,ierase;
        while(sleep(3));
        m_dbOracle.checkSMProcessState();
        for(iexec=m_dbOracle.m_OTAServiceQueue.begin();\
        iexec!=m_dbOracle.m_OTAServiceQueue.end();iexec++)
        {
                ota_sq=*iexec;
                if((*iexec)->;m_ProcessState==3)
                {
                                        }
                delete ota_sq;
        }
       
        m_dbOracle.m_OTAServiceQueue.clear();
        ota_sq=NULL;
        return true;

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-03-26 10:49 |只看该作者

STL中list内存管理问题?

你的程序看不明白。

论坛徽章:
0
3 [报告]
发表于 2004-03-26 10:58 |只看该作者

STL中list内存管理问题?

m_OTAServiceQueue是我在例外一个函数中创建的list,下面是释放list
中的对象的代码,
.....
list<COTAServiceQueue *>;::iterator iexec,ierase;
for(iexec=m_OTAServiceQueue.begin();\
iexec!=m_OTAServiceQueue.end();iexec++)
{
ota_sq=*iexec;
delete ota_sq;
}

m_OTAServiceQueue.clear();
ota_sq=NULL;
return true;
.......

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-03-26 11:22 |只看该作者

STL中list内存管理问题?

ota_sq是什么类型?
我怎么感觉是对象呀,不是对象指针。

论坛徽章:
0
5 [报告]
发表于 2004-03-26 11:45 |只看该作者

STL中list内存管理问题?

COTAServiceQueue *ota_sq;
我在这个函数中定义的指针变量,为了释放list中的对象才定义的

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-03-26 11:54 |只看该作者

STL中list内存管理问题?

这段代码没什么问题。
是不是你在链表里面的对象,
它的数据又有指针,
而你没把指针指向的空间释放。

论坛徽章:
0
7 [报告]
发表于 2004-03-26 12:33 |只看该作者

STL中list内存管理问题?

*iexec本身就是list中的一个对象,COTAServiceQueue *ota_sq;
ota_sq是指针,是否应该是*ota_sq=*iexec;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP