有关链表建立的问题
程序代码:#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct node *link;
struct node {
char item;
link next;
};
link NODE(char item,link next)
{
link t = (link)malloc(sizeof *t);
t->item = item;
t->next = next;
return t;
}
int main()
{
int i;link t,head = NULL;
srand(time(NULL));
for (i=0;i<10;i++)
{
head = NODE(rand()%100,head); //head = 新空间?
}
for (t=head;t;t=t->next)
{
printf("%3d",t->item);
}
}
head = NODE(rand()%100,head); 这一句我感到很困惑,既然后调用了NODE()那么应当在函数调用完之后,系统不会收回已经分配的空间么?烦请请大家分析一下这个函数调用的过程,说明下这个链表建立的过程,跪拜了~~~








