在 xcode 5 中,我收到此警告:
“函数 free 的隐式声明在 c99 中无效”
如果我不能使用函数 free(),我应该如何释放我的 c 结构?
你应该包括<stdlib.h>
.
您收到该警告是因为您在没有先声明它的情况下调用了一个函数,因此编译器不知道该函数。
所有函数都需要在调用之前声明,C 中没有“内置”函数。
确实free()
是标准中定义的函数,但还不是内置的,你必须有它的原型。
要确定哪个标头具有原型,请尝试搜索“man free”并查找Linux 手册页。靠近顶部,它说:
#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>
到您的源代码。