内置函数'malloc'的隐式声明不兼容

时间:2011-08-13 13:49:28

标签: c struct malloc

我收到了这个错误:

  

警告:内置函数'malloc'的不兼容隐式声明

我正在尝试这样做:

fileinfo_list* tempList = malloc(sizeof(fileinfo_list));

仅供参考,手头使用的结构是:

typedef struct {
    fileinfo** filedata;
    size_t nFiles;
    size_t size;
    size_t fileblock;
} fileinfo_list;

我没有看到我所做的事情有什么不妥。我只是创建一个大小为1 x tempList的{​​{1}}。

5 个答案:

答案 0 :(得分:304)

您可能忘记加入<stdlib.h>

答案 1 :(得分:41)

您需要#include <stdlib.h>。否则,它被定义为int malloc(),与内置类型void *malloc(size_t)不兼容。

答案 2 :(得分:15)

你错过了#include <stdlib.h>

答案 3 :(得分:3)

stdlib.h文件包含malloc,calloc,realloc和free函数的头信息或原型。

因此,要在ANSI C中避免此警告,您应该包含stdlib头文件。

答案 4 :(得分:-4)

此类警告的唯一解决方案是在程序中包含stdlib.h。