使用free()函数

时间:2014-10-19 16:39:56

标签: c pointers

假设我有一个带有头指针的链表节点,我将头传给了其他一些函数 像test(node * np)

如果我在此功能测试中使用head释放np可能会或可能不会指向该节点会发生什么?

1 个答案:

答案 0 :(得分:2)

根据C标准,使用free指针不正确的行为是未定义的行为:

  

7.22.3.3 free功能

     

...

     

free 函数会导致 ptr 指向的空格被取消分配,即   可供进一步分配。如果 ptr 是空指针,则不会执行任何操作。否则,如果   该参数与先前由内存管理返回的指针不匹配   功能,或者如果通过调用 free realloc 取消分配空间,   行为未定义。