VsCode crtdbg.h не нашел, как исправить? - PullRequest
2 голосов
/ 06 марта 2019

Попытка проверить средство утечки памяти, но Vscode не распознает #include <crtdbg.h>.

Вот код:

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

int main()
{
    char *word = "this still relevant.";
    char *mem = (char *)malloc(sizeof(word));
    strcpy(mem, word);
    printf("%s", mem);
    system("pause");
    _CrtDumpMemoryLeaks();
}

Ошибка компиляции:

source.c:4:10: fatal error: crtdbg.h: No such file or directory
#include <crtdbg.h>

Как правильно включить crtdbg.h?

PS: я использую компилятор MinGW, все работает, кроме этого.

РЕДАКТИРОВАТЬ 1: Решение этого другого поста не работает. Если я использую предложенный код, это появляется.

source.c:24:5: error: '_CrtDumpMemoryLeaks' was not declared in this scope
     _CrtDumpMemoryLeaks();

РЕДАКТИРОВАТЬ 2: Кто-нибудь использует VsCode с MinGW?

1 Ответ

0 голосов
/ 06 марта 2019

Это должно помочь ...

#ifdef _MSC_VER
#include <crtdbg.h>
#else
#define _ASSERT(expr) ((void)0)

#define _ASSERTE(expr) ((void)0)
#endif
...