oct*_*ian 1 c malloc struct list sizeof
我正在开发一个项目,其中我有一个标题,其定义list和list_elem结构很像实际的c库(列表的实现没有错误).我正在编写一个使用列表实现的源文件,并收到以下警告:
warning: implicit declaration of function ‘malloc’ [-Wimplicit-function-declaration]
Run Code Online (Sandbox Code Playgroud)
这是list_elem结构的声明
/* List element. */
struct list_elem
{
struct list_elem *prev; /* Previous list element. */
struct list_elem *next; /* Next list element. */
};
Run Code Online (Sandbox Code Playgroud)
我在这里用的是:
//creates a list element
struct list_elem le_current;
&le_current = (struct list_elem *)malloc(sizeof(struct list_elem));
Run Code Online (Sandbox Code Playgroud)
我知道有同样问题的另一个问题,但与那个人不同,我确实包括了
#include <stdlib.h>
Run Code Online (Sandbox Code Playgroud)
以及定义列表的标题
#include "lib/kernel/list.h"
Run Code Online (Sandbox Code Playgroud)
几乎可以肯定的<stdlib.h>是,在获取malloc隐式声明的编译器警告消息的代码之前不包含该内容.您应该寻找以下情况:
#include <stdlib.h>出现在条件代码(由于预处理器语句如#if,#elif,或#else),并且实际上不包括在内.<stdlib.h>.<stdlib.h>包括之前,有一个#define替换malloc其他东西(并且可能包含#undef后面的<stdlib.h>内容.(这很少但可能.)如果这些没有显示错误,您应该将问题简化为一个简短的,自包含的可编译示例.这样做很可能会解决问题.