有关链表建立的问题
程序代码:
#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()那么应当在函数调用完之后,系统不会收回已经分配的空间么?烦请请大家分析一下这个函数调用的过程,说明下这个链表建立的过程,跪拜了~~~