为什么每次使用malloc时都会收到警告?

如果我在我的代码中使用malloc

 int *x = malloc(sizeof(int)); 

我从gcc得到这个警告:

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

你需要添加:

 #include <stdlib.h> 

该文件包含内置函数malloc的声明。 如果你不这样做,编译器认为你要定义自己的函数malloc ,并警告你,因为:

  1. 你不明确地声明它
  2. 这个名字已经有了一个内置的函数,它的签名与隐式声明的不同(当函数被隐式声明时,它的返回值和参数types被假定为int ,这与intmalloc ,它需要一个size_t并返回一个void* )。

你还没有完成#include <stdlib.h>

您需要包含声明该函数的头文件,例如:

 #include <stdlib.h> 

如果你不包含这个头文件,编译器不知道这个函数。 所以它认为它是未声明的。

养成在帮助下看你的function的习惯。

C的大部分帮助都是在unix手册页上build模的。

男人malloc

给出相当有用的结果。

google malloc会告诉你我的意思。

当然在Unix下,你也可以得到相关的东西。