Утечка памяти с помощью shared_ptr C++
Привет,
Я использую shared_ptr и объявляю как
std:: shared_ptr< classa> ptr = std:: make_shared< classa>();
Поэтому, когда я когда-либо хочу использовать, я непосредственно вызываю указатель и использую его в методах.
при использовании такого указателя память увеличивается для каждого вызова метода.
Я вижу увеличение памяти в Taskmanager.
Может ли кто-нибудь помочь мне, как я могу освободить память или удалить/сбросить указатель в/после вызова функции?
Спасибо за помощь!!
Что я уже пробовал:
1. я попытался сбросить указатель после вызова функции ptr. reset();
2. сделать его как weak_ptr
3. Создание синглтона
Jochen Arndt
На этот вопрос нельзя ответить, не увидев использования shared_ptr.
Вы можете установить точку останова внутри деструктора classa, чтобы увидеть, когда он будет удален. Если этого никогда не произойдет, то объект по-прежнему будет принадлежать shared_ptr(s).
N.Ravi Raj
я удаляю shared_ptr только в деструкторе.
Jochen Arndt
Вы удаляете shared_ptr?
shared_ptr был введен, чтобы избежать ручного удаления, потому что они отслеживают использование и удаляют, когда больше не ссылаются.
Вы действительно должны показать нам соответствующие фрагменты кода.