Форум программистов, компьютерный форум CyberForum.ru

Освобождение памяти после std:bind - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Runtime error при открытии lua-скрипта http://www.cyberforum.ru/cpp/thread1788252.html
Всем доброго времени суток. Есть функция, задача которой прочитать lua-скрипт и перенести значения параметров из него в структуру. Код немного условный, потому что инициализация, подключение библиотек и деинициализация script_LuaState вынесены в отдельные функции. script_LuaState = luaL_newstate(); luaL_openlibs(script_LuaState);
C++ С++ идиомы - обсуждение Тема создана для вопросов и обсуждений С++ идиом http://www.cyberforum.ru/cpp/thread1788235.html
Операции с двоичными деревьями поиска C++
Добрый день. Пожалуйста, помогите с написанием программы: Разработать программу, реализующую следующий набор операций с двоичными деревьями поиска: поиск вершины с заданным значением ключа с выводом счетчика числа появлений данного ключа добавление новой вершины в соответствии со значением ее ключа или увеличение счетчика числа появлений построчный вывод дерева в наглядном виде с помощью...
C++ С++ идиомы
Перевод статей 1 и 2. Будет постепенно обновляться. Желающие внести вклад могут писать в ЛС. Тема открыта, просьба добавлять только посты с переводом, обсуждение здесь Переведенные идиомы: self-assignment in an assignment operator Scope Guard Shrink-to-fit Checked delete Pointer To Implementation
C++ Внедрение DLL в EXE http://www.cyberforum.ru/cpp/thread1787895.html
Здравствуйте, хочу написать свой объединитель exe и dll. Подскажите, как это можно сделать так, чтобы можно было при запуске использовать dll без записи на диск
C++ Как создать оконную программу на c++ exe Можно по подробние как создать оконную программу на c++ exe . Я только что перешол на c++ из Bash (cmd , bat , командная строка ) и как то не хочется опять возвращатся к консольным программам . Я незнаю еще не каких команд для C++ и не знаю не каких компеляторов но хотелось бы создать хотяюы самую простую оконную программу без всяких функций что бы просто открылось пустое окно . Вы поможите ? И... подробнее

Показать сообщение отдельно
karat39
4 / 4 / 1
Регистрация: 09.02.2016
Сообщений: 74

Освобождение памяти после std:bind - C++

01.08.2016, 13:49. Просмотров 318. Ответов 11
Метки (Все метки)

Что имею:
- CentOS
- gcc 4.8
- valgrind

Что делаю
- С помощью valgrind устраняю утечки
- Если приложение остановлено штатно, то все утечки я устранил
- Если останавливаю с помощью ctrl-c, valgrind рапортует об куче неосвобожденной памяти. Скорее всего, нужно в деструкторах освободить руками.

Проблема
Получаю такой кусок отчета

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
24 bytes in 1 blocks are still reachable in loss record 2 of 6
at 0x4C2A105: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
 
by 0x402FDC: _M_clone (functional:1910)
 
by 0x402FDC: std::_Function_base::_Base_manager<std::[B]_Bind[/B]<std::_Mem_fn<void (MyClassWorker::*)(header_struct*, void*, bool)> (MyClassWorker*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) (functional:1946)
 
by 0x404D3F: function (functional:2442)
 
by 0x404D3F: operator= (functional:2275)
 
by 0x404D3F: MyClass::MyClass(char const*, char const*, unsigned int, char const*, unsigned int, unsigned int, char const*, [B]std::function<void (header_struct*, void*, bool)[/B]>) (MyClass.cpp:49)
 
by 0x4026DD: main (main.cpp:26)
Делаю вывод, что выделение памяти вызвано созданием функции bind (хотя пока писал, быть может память выделилась под ее переменные). Следовательно вопрос, как то можно ее освободить в конструкторе?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru