tumanovalex
12-12-2022, 17:18
В режиме отладки простой консольной программы:#include <malloc.h>
#include <crtdbg.h>
#include <iostream>
int main()
{
int tmpDbgFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
tmpDbgFlag |= _CRTDBG_DELAY_FREE_MEM_DF;
tmpDbgFlag |= _CRTDBG_LEAK_CHECK_DF;
tmpDbgFlag |= _CRTDBG_DELAY_FREE_MEM_DF;
_CrtSetDbgFlag(tmpDbgFlag);
int* p = NULL, N = 3;
p = (int*)malloc(sizeof(int) * N);
// free(p);
return 0;
} Visual Studio сообщает об утечки памяти: "
Detected memory leaks!
Dumping objects ->
{159} normal block at 0x000001A602D37C50, 12 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD
CodeBlocks c MinGW и gdb сообщает только, что "D:\MyProgramming\cbBookExamles\main.cpp|12|warning: variable 'p' set but not used [-Wunused-but-set-variable]|"
Подскажите, пожалуйста, как настроить компилятор (отладчик), чтобы появились сообщения об утечки памяти.
#include <crtdbg.h>
#include <iostream>
int main()
{
int tmpDbgFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
tmpDbgFlag |= _CRTDBG_DELAY_FREE_MEM_DF;
tmpDbgFlag |= _CRTDBG_LEAK_CHECK_DF;
tmpDbgFlag |= _CRTDBG_DELAY_FREE_MEM_DF;
_CrtSetDbgFlag(tmpDbgFlag);
int* p = NULL, N = 3;
p = (int*)malloc(sizeof(int) * N);
// free(p);
return 0;
} Visual Studio сообщает об утечки памяти: "
Detected memory leaks!
Dumping objects ->
{159} normal block at 0x000001A602D37C50, 12 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD
CodeBlocks c MinGW и gdb сообщает только, что "D:\MyProgramming\cbBookExamles\main.cpp|12|warning: variable 'p' set but not used [-Wunused-but-set-variable]|"
Подскажите, пожалуйста, как настроить компилятор (отладчик), чтобы появились сообщения об утечки памяти.