我有一个结构,它包含一个next
指向相同类型结构的指针。
我有以下代码存储node
指针存储的结构的编号,释放它,并将节点设置为node->next
. 如果在它之前被调用,怎么node->next
知道它是什么?free
double data = node->element;
free(node)
node = node->next;
return data;
但是,遵循相同的逻辑,以下代码会出现段错误。唯一的区别是它使用了一个node
,而另一个只是将元素存储在它的基本数据类型中。
struct node *temp;
temp = node;
free(node);
node = node->next;
return temp;
为什么会这样?第一段代码是如何工作的?
谢谢