我有以下问题/问题:
我目前正在C中从事视觉工作室工作
我创建了一个使用函数malloc
并且免费的程序,我确信我使用它们很好,但是当我尝试编译时,我得到以下错误:
Error C3861 'free': identifier not found
Error (active) identifier "free" is undefined
(same errors for malloc)
我所做的唯一包含声明是stdio.h
(我通常添加它,它适用于这些函数)
我添加了stdlib
并且问题已经解决了,但是当我为这项工作服务时,我可能会因为包含我们目前无法使用的图书馆而被降级,有人可以告诉我为什么这些功能不会被删除只使用stdio.h
?
答案 0 :(得分:3)
<stdlib.h>
是调用malloc
和free
时要包含的正确标头。事实上,在调用<stdlib.h>
和malloc
时,必须包括free
(直接或间接)是正确的。
有很多理由说明为什么它可能曾经为你工作过一次,即使你没有。没有看到旧的代码,我不能说为什么。别担心。在致电<stdlib.h>
和malloc
时,请始终加入free
。
答案 1 :(得分:0)
malloc和free在stdlib.h下定义。所以不包括它你的程序就不会工作。