为什么每次使用malloc时都会收到警告?
如果我在我的代码中使用malloc
:
int *x = malloc(sizeof(int));
我从gcc
得到这个警告:
new.c:7:警告:函数'malloc'的隐式声明
new.c:7:警告:内置函数'malloc'的不兼容隐式声明
你需要添加:
#include <stdlib.h>
该文件包含内置函数malloc
的声明。 如果你不这样做,编译器认为你要定义自己的函数malloc
,并警告你,因为:
- 你不明确地声明它
- 这个名字已经有了一个内置的函数,它的签名与隐式声明的不同(当函数被隐式声明时,它的返回值和参数types被假定为
int
,这与int
在malloc
,它需要一个size_t
并返回一个void*
)。
你还没有完成#include <stdlib.h>
。
您需要包含声明该函数的头文件,例如:
#include <stdlib.h>
如果你不包含这个头文件,编译器不知道这个函数。 所以它认为它是未声明的。
养成在帮助下看你的function的习惯。
C的大部分帮助都是在unix手册页上build模的。
男人malloc
给出相当有用的结果。
google malloc会告诉你我的意思。
当然在Unix下,你也可以得到相关的东西。