1

使用 MinGW 和 gcc 的基本 hello world 程序,没有附加标志。我很困惑为什么我会收到错误“无法寻址的访问”、“可能的泄漏”和“仍然可访问的分配的 4134 字节”。

目标:使用 gcc 版本 8.2.0 的 x86_64-w64-mingw32

#include <stdio.h>

int main() {
    printf("Hello World");
    return 0;
}

来自 Dr. Memory 的错误信息: 来自 Dr. Memory 的错误信息

像这样的简单程序不应该完全没有错误吗?也许如果我能对正在发生的事情有所了解。

4

1 回答 1

0

我认为,当您想在屏幕上打印某些内容时,通常需要使用int argcargv[] ,特别是在main之后的 "()" 内的 char *argv[] ,因为当然你的字符串是一个参数,自然而然。该程序将如下所示:

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Hello World");
    return 0;
}

请注意,现在程序接收到 char *argv[] 类型的参数,并且它们的数量存储在 argc 中。无法处理可能是由于无法知道要打印的分配数组的大小。

于 2021-02-03T07:14:29.487 回答