隐含的自由函数声明在c99中无效

时间:2013-10-16 10:59:25

标签: c xcode

在xcode 5中,我收到此警告:

  

“免费函数的隐式声明在c99中无效”

如果我不能使用free()函数,我应该如何释放我的c结构?

2 个答案:

答案 0 :(得分:52)

您应该包含<stdlib.h>

答案 1 :(得分:8)

你得到的警告是因为你在没有先声明它的情况下调用函数,所以编译器不知道函数。

所有函数都需要在被调用之前声明,C中没有“内置”函数。

free()确实是标准中定义的函数,但它仍然没有内置,你必须有一个原型。

要确定哪个标头包含原型,请尝试搜索“man free”并查找Linux manual page。靠近顶部,它说:

#include <stdlib.h>

void *malloc(size_t size);
void free(void *ptr);
void *calloc(size_t nmemb, size_t size);
void *realloc(void *ptr, size_t size);

这告诉您,为了使用列出的函数,您应该添加:

#include <stdlib.h>

到你的源代码。