QHash удаление указателя
Передаю в качестве аргумента функции указатель на хэш указателей:
void function(QHash<int, QHash<int, SomeClass *>*> *someparams)
{
delete someparams;
}
Как корректно удалить указатель чтобы не было утечки памяти?
Ответы (1 шт):
Автор решения: e.n.shirokov
→ Ссылка
void function(QHash<int, QHash<int, SomeClass *>*> *someparams)
{
if(someparams != nullptr) {
for(QHash<int, SomeClass *>* valueHash : someparams->values()) {
if(valueHash != nullptr) {
for(SomeClass* valueClass : valueHash ->values()) {
if(valueClass != nullptr) delete valueClass;
}
valueHash->clear();
delete valueHash;
}
}
someparams->clear();
delete someparams;
}
}