_CRTDBG_MAP_ALLO C - Как исключить объекты стека - PullRequest
0 голосов
/ 05 марта 2020

В MSVS c ++ я включаю обнаружение утечек памяти с помощью:

#define _CRTDBG_MAP_ALLOC

Если я создаю объект (пользовательского класса), который создается в стеке, я получаю вывод типа:

Detected memory leaks!
Dumping objects ->
{84} normal block at 0x00BBA448, 8 bytes long.
 Data: <$|      > 24 7C BB 00 00 00 00 00 

Что имеет смысл, поскольку распределение удерживается до конца заявки. Это не утечка памяти.

Если я использую NEW и DELETE с одним и тем же объектом, «утечка памяти» отсутствует.

MyClass* MyObjectPointer = new MyClass();
delete MyObjectPointer;

У меня вопрос, могу ли я выделить объекты которые создаются в стеке, до того, как приложение завершится, поэтому обнаружение утечки памяти их не покажет? Вы не можете УДАЛИТЬ их.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...