:)Добрый вечер всем.У меня вопрос опять связанный с памятью :)Создаю поток и в ране пишу QFile fl(...); ну и т.д,в конце соотвестно закрываю fl.close();.При этом при уничтожении потока память не полнустью очищается,правда при следующем запуске она всегда после закрытия возвращается к одному и тому же значению.Почему это происходит?
Каким образом это было зарегистрировано?? - "память не полностью очищается".
"правда при следующем запуске она всегда после закрытия возвращается к одному и тому же значению" - вполне нормальная ситуация!
Объяснять почему это может происходить(без утечки) - долго.
Если сомневаетесь, есть ли утечка памяти, самое простое - прогнать по циклу "возможное слабое место" 1000-1000000 раз и посмотреть, есть ли утечка.
Это было зарегистрировано с помощью Process Explorer.Насчет того что утечка какая то есть,уверен,пробывал оба варианта-и закомментирование и циклическое выполнение.Приведу кусок кода,посмотрите,может чтот неверно удаляю.
locker.lock();
dt=QDate::currentDate().toString("dd.MM.yyyy");
QFile *fl=new QFile(QDir::current().absolutePath()+"/log_dir/"+dt+".txt");
can_read=true;
//Checking if file exists
if(!fl->exists())
{
can_read=false;
}
//--END--
//Checking if file has read attribute
if(!fl->open(QIODevice::WriteOnly|QIODevice::Append))
{
can_read=false;
}
//--END--
tm=QTime::currentTime();
time_now=tm.toString("hh:mm:ss");
QTextStream stream(fl);
stream << dt+" "+time_now+" "+" "+val.replace("\n","").replace("\r","")+"\n";
fl->close();
stream.flush();
locker.unlock();
delete fl;
Вот...после каждого выполнения этого кода происходит утечка.