求改进,求解释 !!
程序代码:
#include <stdio.h> #include <malloc.h> typedef struct node{ int data; struct node *link; }NODE; int main(void){ NODE *head; NODE *p; int n=3; create(head,n); print_str(head); getch(); return 0; } create(NODE *head,int n){ int a=1; NODE *p; for(;n>0;--n,a++){ printf("Pleas Enter %d NUM:",a); p=(NODE *)malloc(sizeof(NODE)); if(p==NULL) exit(0); scanf("%d",&p->data); p->link=head->link; head->link=p; } } print_str(NODE *head){ NODE *p; p=head->link; while(p){ printf("%d\n",p->data); p=p->link; } }输入 3 2 1
输出1 2 3 21504 0 ;
貌似我想要的结果不是这样的
亲们 求解释