假设我有一个带有头指针的链表节点,我将头传给了其他一些函数 像test(node * np)
如果我在此功能测试中使用head释放np可能会或可能不会指向该节点会发生什么?
答案 0 :(得分:2)
根据C标准,使用free
指针不正确的行为是未定义的行为:
7.22.3.3
free
功能...
free
函数会导致ptr
指向的空格被取消分配,即 可供进一步分配。如果ptr
是空指针,则不会执行任何操作。否则,如果 该参数与先前由内存管理返回的指针不匹配 功能,或者如果通过调用free
或realloc
取消分配空间, 行为未定义。