Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2020, 07:30   #1
Gubernator
Новичок
Джуниор
 
Регистрация: 08.01.2020
Сообщений: 2
По умолчанию Утечка памяти при использовании map

И так, в данном коде, при использовании map возникает утечка памяти, вопрос почему такое происходит?
(Компилятор Microsoft (R) C/C++ версии 19.24.28314 для x64)
Код:

#define _CRTDBG_MAP_ALLOC 
#include <stdlib.h>
#include <crtdbg.h>

#include <string>
#include <map>

using namespace std;

int main()
{

	map<int, string> entities;

	_CrtDumpMemoryLeaks();
	getchar();

	return 0;
}
Detected memory leaks!
Dumping objects ->
{169} normal block at 0x000001C2F0236190, 80 bytes long.
Data: < a# a# > 90 61 23 F0 C2 01 00 00 90 61 23 F0 C2 01 00 00
{168} normal block at 0x000001C2F0242750, 16 bytes long.
Data: < p% > 08 FB BC 70 25 00 00 00 00 00 00 00 00 00 00 00
Object dump complete.
Gubernator вне форума Ответить с цитированием
Старый 08.01.2020, 13:04   #2
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 960
По умолчанию

Gubernator, здесь нечему течь. А почему подозрение именно на мапу?

какой результат будет, если сделать цикл?

Код:
for(int i=0;i<100;i++)
{
   map<int, string> entities;
}
Алексей1153 вне форума Ответить с цитированием
Старый 08.01.2020, 13:10   #3
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 960
По умолчанию

у меня подозрение, что показан дамп текущей выделенной памяти (то, что выделилось в конструкторе мапы). Ну и правильно, ведь объект мапы ещё не разрушен. Достаточно вызвать деструктор (точнее - обернуть в блок, чтобы деструктор был вызван), чтобы "утечка" "пропала"

Код:
int main()
{
	{
		map<int, string> entities;
	}

	_CrtDumpMemoryLeaks();
	getchar();

	return 0;
}
Алексей1153 вне форума Ответить с цитированием
Старый 09.01.2020, 12:05   #4
Gubernator
Новичок
Джуниор
 
Регистрация: 08.01.2020
Сообщений: 2
По умолчанию

Алексей1153, Да действительно, ваш вариант помог, спасибо
Gubernator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Утечка памяти [Освобождение памяти массива] denis76560 Общие вопросы Delphi 4 27.11.2016 18:20
Утечка памяти. Gdasar C++ Builder 15 09.02.2016 08:56
Утечка памяти :( batnik.com C++ Builder 1 09.05.2013 18:09
Утечка памяти при использовании DOM Ferrum26 Общие вопросы Delphi 4 13.08.2010 14:45
утечка памяти в С++ vengo Общие вопросы C/C++ 9 10.06.2008 21:24