Dlaczego _CrtDumpMemoryLeaks zgłasza tutaj wyciek pamięci?
Chcę sprawdzić wyciek pamięci w trybie DEBUG. Używam systemu Windows i, aby to zrobić, funkcja_CrtDumpMemoryLeaks.
Dlaczego ten kod znajduje przeciek pamięci?
#include <Windows.h>
#include <iostream>
int main()
{
if(_CrtDumpMemoryLeaks() == TRUE)
std::cerr << "MEMORY LEAK!" << std::endl;
return 0;
}
EDYTOWAĆ:Dodaję ten kod do bezpośredniego wyjścia na konsolę:
_CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT );
_CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT );
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT );
Dane wyjściowe to: