В 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;
У меня вопрос, могу ли я выделить объекты которые создаются в стеке, до того, как приложение завершится, поэтому обнаружение утечки памяти их не покажет? Вы не можете УДАЛИТЬ их.
Спасибо.