2

试图检查内存泄漏工具,但 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 一起使用?

4

2 回答 2

1

我认为 VSCODE 无法访问头文件 crtdbg.h ,请使用以下简单方法进行测试。也许它解决了你的问题:

1- 以管理员身份运行 VS2019 的开发人员命令提示符。我强调以管理员身份运行不运行。

2-类型代码。

3- 打开项目文件夹。

4-快乐编码并享受它。

于 2020-11-17T14:43:15.000 回答
0

应该有帮助...

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

#define _ASSERTE(expr) ((void)0)
#endif
于 2019-03-05T23:04:08.110 回答