QVector<cLibraryRecord> Library;
...
Library.push_back(cLibraryRecord(ReaderFullName, BookGenre, BookTitle, AuthorsFullName, IssueDate, ReturnDate));
...
Library.remove(i);
QVector :: remove()不清除內存。我如何清理內存? 在此先感謝。使用QVector的內存泄漏
QVector<cLibraryRecord> Library;
...
Library.push_back(cLibraryRecord(ReaderFullName, BookGenre, BookTitle, AuthorsFullName, IssueDate, ReturnDate));
...
Library.remove(i);
QVector :: remove()不清除內存。我如何清理內存? 在此先感謝。使用QVector的內存泄漏
QVector.remove()
始終調用包含對象的析構函數,但保留大小(由QVector::capacity()
返回)不會在您刪除元素時自動收縮。
您可以使用QVector::squeeze()
來釋放未使用的保留內存。
但是你也可以在你的班級cLibraryRecord
有內存泄漏。
有關更多詳細信息,請參閱Qt文檔:Qt containers growth strategies。
可能是我不明白的東西,但我不會在任何地方分配內存。 QVector :: squeeze()沒有幫助。我的來源сodezalil.ru/31758142 –
你確定'cLibraryRecord'? – deepmax
@БорискаСосиска:是的。如果有泄漏,它更可能在'cLibraryRecord'類中。 – Mat
我認爲'cLibraryRecord'的析構函數有問題。如果可以的話,放入'cLibraryRecord'代碼。 – deepmax