c-关于malloc结构数组的困惑



好的,所以我有下面的结构

struct node {
    int visited;
    struct node **depend;
};

我正在尝试使用以下动态分配

fscanf(iStream, "%d %d", &nTasks, &nRules);
    graph = (struct node *) malloc(nTasks * sizeof(struct node));

但是Eclipse显示了

\GraphSort.c:62:18:警告:函数的隐式声明"malloc"[-Wimplicit函数声明]图=(结构节点*)malloc(nTasks*sizeof(struct-node));^

\GraphSort.c:62:26:警告:的不兼容隐式声明内置函数"malloc"[默认启用]图=(结构节点*)malloc(nTasks*sizeof(struct-node));^

我不明白的是为什么。数组不是表示为指向第一个元素的指针吗?

此外,我还有这个声明,它没有显示任何警告

fscanf(iStream, "%d, %d", &taskId, &dependencies);
        graph[taskId-1].visited = 0;
        graph[taskId-1].depend = (struct node **) malloc(dependencies * sizeof(struct node *));

implicit declaration of function 'malloc'表示您没有包含正确的头文件,该头文件告诉您的程序如何调用malloc。尝试添加到程序的开头:

#include <stdlib.h>

您的另一部分代码不是"声明",它只是一系列语句。编译器只会警告您一次未能为它编译的每个文件声明malloc()

您似乎只是忘记了包含<stdlib.h>