Qt程序内存泄漏

lied 2016-03-02 04:00:05
void ThreadA::run()
{
QFile fp;
int pos = 0;
fp.setFileName("U:/EVENT.DAT");
FileR_W R_W;
pos =R_W.ReadSelectDate(fp,searchDate1,"1线");
PublicThread_Run(fp,"Table_1","A","01",pos);
}


int FileR_W::ReadSelectDate(QFile &fp, QString selectDate,QString LineID)
{

int pos;
if(fp.open(QIODevice::ReadOnly))
{
while(1)
{
Sleep(1);
QString line = fp.readLine();
if(line == "")
{
qDebug()<<"未能搜索到指定日期";
}
else
{
QStringList readContext = line.split(' ');
if(readContext[0] == selectDate)
{
qDebug()<<"搜索到指定日期";
pos = fp.pos();
return pos;
break;
}
else
{
qDebug()<<"搜索中..."+readContext[0]+readContext[1];
emit SSR_W->SearchSignal(LineID,readContext[0]+readContext[1]);
}
}

}
}
else
{
qDebug()<<LineID+ "文件不存在";
emit SSR_W->LineOutSignal(LineID);
//fp.close();
}

}


代码如上,运行这段代码时内存不断增大,查了好久不清楚哪里出问题了,大家帮忙看看~
...全文
164 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lied 2016-03-02
  • 打赏
  • 举报
回复
引用 3 楼 cpcpcp123 的回复:
楼主最后怎么搞定的 我也遇到内存泄露导致程序崩溃的问题了 就是不知道怎么解决
我还没有完全解决,只是一点点debug找到泄漏的位置了,还没认真检查代码。
  • 打赏
  • 举报
回复
楼主最后怎么搞定的 我也遇到内存泄露导致程序崩溃的问题了 就是不知道怎么解决
lied 2016-03-02
  • 打赏
  • 举报
回复
FileR_W *SSR_W = new FileR_W();//用来进行信号传输 debug 终于发现问题了,应该是emit 信号时泄漏。。 此处我是定义一个全局的变量SSR_W (SSR_W是我自己定义的类,里面有定义信号,槽函数定义在窗口类MainWindow中)
lied 2016-03-02
  • 打赏
  • 举报
回复
代码是从指定文件搜索,和设定日期比较,相同则返回当前文件搜索所在位置 文件内容如:23/02/2016 15:27:39 hello 24/02/2016 15:27:39 world ....

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧