比如定义了一个结构体 struct stu
{
int num;
struct stu *next;
}
struct stu* create(int n)
{
struct stu *head,*p,*back;
/ 创建若干个节点的链表
return head;
}
main()
{
struct stu *p=create(3);
接着输出在函数中创建的链表
}
struct类型的变量不是auto类型的吗,若按照局部变量理解,main中调用完create后,在函数中创建的链表应该也回收空间了,为何还能在main中打印出来呢??
刚看了点资料,关键点是我用malloc为节点分配了空间,是在堆上得,除非我用free释放掉,否则直到整个程序结束,这段空间还是存在的。但是struct *head呢,指针变量head还是在动态存储区分配的空间吧,只是它的值被return回来了,所以在main中可以找到create的链表。是这个意思吧,大侠?