【问题标题】:Confused ERROR revelant to C pointer: Expression preceding parentheses of apparent call must have (pointer-to-) function type与 C 指针相关的混淆错误:明显调用的括号前的表达式必须具有(指向)函数类型
【发布时间】:2022-01-06 23:09:45
【问题描述】:

我是C语言数据结构的初学者,这是我在学习顺序队列时遇到的:

我认为所有变量的类型都应该是正确的,但是在第三张图的第 73 行,它提醒说“明显调用括号前的表达式必须具有(指向)函数类型”强>。现在我不知道如何解决这个错误,您能给我一些建议吗?

【问题讨论】:

  • 不要发布指向文字图片的链接。将文本作为格式正确的文本发布。阅读此:How to Ask 和此:minimal reproducible example。然后edit 的问题。之后你一定会得到答案。
  • 将代码发布为文本...
  • 在包含对malloc 的调用的.c 文件中是否有#include <stdlib.h>
  • 您需要区分来自 IDE 和编译器的消息。前者只不过是一种帮助,但后者是相关的。当您尝试编译时,您的编译器会说什么?请记住将警告级别提高到最大。 (提示:好的编译器会识别函数的名称并告诉你缺少的包含。)
  • 这听起来好像编译器/IDE 不仅抱怨缺少malloc 的声明,而且认为它与函数不同。您对malloc 有自己的定义吗?只要您不更新您的问题以用完整的代码示例(作为文本)替换图像,我们就只能猜测。

标签: c pointers


【解决方案1】:

看起来好像代码不知道malloc 是一个函数。请注意,在 C 语言中,除非您告诉编译器,否则编译器不会知道任何函数;这也适用于 C 标准 API 的所有函数。通常这是通过在头文件中声明函数,然后在您希望知道函数的地方包含头文件来完成的。例如。编译器不会知道存在名为 malloc 的函数,除非您将 <stdlib.h> 包含到源文件中,因为这是声明 malloc 的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多