如果我有类似的东西
struct Node *root;
struct Node *q;
root = malloc( sizeof(struct Node));
q = root;
free(q);
q指向释放的节点是什么?还是我必须传递root
给free
函数?
两者root
和q
具有相同的值,也就是说,它们指向相同的存储位置。调用之后free(q)
,它们两个都是悬空指针,因为它们都指向的对象已被释放,但它们仍指向该位置。
取消引用都将调用未定义的行为。这包括调用free
它们中的任何一个。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句