我習慣於使用valgrind來調試我的C代碼,但我最近切換到Qt Creator和C++。 Qt Creator的valgrind內置了哪個聲音不錯,但...Qt Creator/C++在這種情況下valgrind有意義
如果我不直接使用malloc /可用內存(即只使用C++的內置內存清除功能,不需要更多引用對象),不應該發生內存泄漏不可能?
我怎麼可能會導致內存泄漏,如果C++是管理對象和內存....
(我害怕RTFM答案,但撓頭)
什麼這樣的事情:
m_logFile = new QFile(programSettings->logging_filename());
我將不得不釋放一下這個指針指向,或當m_logFile不再指向有效的對象將內存被釋放? (因爲我在這裏使用'新',我不知道它是否工作不同)
庫本身可能有一些內存泄漏(如果你使用Qt,一些返回的東西需要你明確地釋放它們IIRC)。 –
不存在你'刪除'這是一個內存泄漏。每個'new'必須有一個匹配的'delete',否則就是內存泄漏。避免內存泄漏的方法不是使用指針。 – john
Qt的做事方式似乎是讓你在(通常是QObject繼承)類中分配的類的析構函數中釋放(用'delete')。 –