如果我在代码中使用 malloc:
malloc
int *x = malloc(sizeof(int));
我从 gcc得到这样的警告:
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>。
#include <stdlib.h>
您需要包含声明函数的头文件,例如:
If you don't include this header file, the function is not known to the compiler. So it sees it as undeclared.
你需要加上:
此文件包含内置函数 malloc的声明。如果你不这样做,编译器会认为你想定义你自己的函数 malloc,它会警告你,因为:
int
size_t
void*
养成寻求帮助的习惯。
大多数对 C 的帮助都是以 unix 手册页为模型的。
使用:
man malloc
gives pretty useful results.
谷歌一下 man malloc会告诉你我的意思。
在 Unix 中,你也可以找到相关的东西。
除了其他非常好的答案,我想做一点挑剔,并涵盖一些什么是尚未讨论的其他答案。
当您在 Linux 上时,要在代码中使用 malloc(),
malloc()
你不是真的 必须的 #include <stdlib.h>。
(尽管 stdlib.h的使用非常普遍,而且可能每个非玩具程序都应该包含它,因为它提供了大量有用的 C 标准库函数和宏)
stdlib.h
你也可以用 #include <malloc.h>代替。
#include <malloc.h>
但是请注意,malloc.h的使用是不推荐的,它使您的代码不可移植。如果你想使用 malloc(),你应该始终和永远(除非明确的原因,做其他) #include <stdlib.h>。
malloc.h
原因 为什么,在这个问题的答案中得到了最好的解释:
< stdlib.h > 与 < malloc.h > 的区别