我是C语言数据结构的初学者,这是我在学习顺序队列时遇到的情况:
typedef struct {
int NO;
int ST; //starttime
} CAR; //car struct
typedef struct {
CAR* sqqbase; // sqqueue's base
int front;
int rear;
} SQQ; // sequential queue
int InitQueue(SQQ *sqq)
{
(*sqq).sqqbase = (CAR*)malloc(SQQMAXSIZE*sizeof(CAR))
(*sqq).frint = (*sqq).rear=0;
return 0;
}
我认为所有变量的类型应该是正确的,但在第三张图片的第73行,它警告“表观调用的括号前面的表达式必须具有(指向)函数类型”。现在我不知道如何解决这个错误,你能给我一些建议吗?
看起来代码似乎不知道
malloc
是一个函数。请注意,在 C 语言中,除非您告诉编译器,否则编译器不会知道任何函数;这也适用于 C 标准 API 的所有函数。通常,这是通过在头文件中声明函数,然后将头文件包含在您希望函数已知的位置来完成的。例如。编译器不会知道名为 malloc
的函数存在,除非您将 <stdlib.h>
包含到源文件中,因为这就是声明 malloc
的地方。