为什么每次使用 malloc 时都会收到警告?
题
如果我使用 malloc
在我的代码中:
int *x = malloc(sizeof(int));
我收到此警告 gcc
:
new.c:7: warning: implicit declaration of function ‘malloc’
new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
解决方案
您需要添加:
#include <stdlib.h>
该文件包含内置函数的声明 malloc
. 。如果你不这样做,编译器会认为你想定义自己的函数,名为 malloc
它警告你是因为:
- 你没有明确声明它 和
- 已经有一个同名的内置函数,它的签名与隐式声明的函数不同(当隐式声明函数时,其返回和参数类型被假定为
int
, ,与内置的不兼容malloc
, ,这需要一个size_t
并返回一个void*
).
其他提示
您有没有做过#include <stdlib.h>
。
您需要包括声明函数的头文件,例如:
#include <stdlib.h>
如果您不包括此头文件,该函数是未知的给编译器。因此将其视为未申报。
请在帮助寻找你的功能了一种习惯。
对于C大多数帮助是仿照UNIX手册页。
人的malloc
给出非常有用的结果。
谷歌搜索的人的malloc会告诉你我是什么意思。
当然在UNIX中,你也得到中肯对于那些相关的东西。
不隶属于 StackOverflow