微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Dr. Memory 不可寻址访问和可能的泄漏以及来自简单 hello world 的仍然可访问的分配

如何解决Dr. Memory 不可寻址访问和可能的泄漏以及来自简单 hello world 的仍然可访问的分配

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

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

#include <stdio.h>

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

来自 Dr. Memory 的错误信息:

Error message from Dr. Memory

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

解决方法

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

#include <stdio.h>

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

请注意,现在程序接收到一个 char *argv[] 类型的参数,并且它们的数量存储在 argc 中。不可寻址的原因可能是因为无法知道要打印的已分配数组的大小。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。