Почему этот std::weak_ptr, очевидно, препятствует освобождению памяти и как я могу обнаружить эту ошибку?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему этот std::weak_ptr, очевидно, препятствует освобождению памяти и как я могу обнаружить эту ошибку?

Сообщение Anonymous »

В моем коде на C++ у меня есть std::shared_ptr, который выходит за пределы области видимости, что уменьшает счетчик его использования до 0, поэтому указанный объект уничтожается. Это работает нормально. Однако, если у меня есть std::weak_ptr, который указывает на этот std::shared_ptr и остается активным, указанная память, очевидно, фактически не освобождается.
Пример:

Код: Выделить всё

#include 
#include 

int main() {
int* my_raw_ptr = nullptr;
std::weak_ptr my_wp;
{
auto my_sp = std::make_shared(42);
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79097435/why-does-this-stdweak-ptr-apparently-prevent-freeing-memory-and-how-can-i-det[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»