#include #include #include #define NULL 0 #define LEN sizeof(struct linkman) struct linkman //联系人结构体 { char name[20]; //姓名 long num; //电话号码 char add[100];//地址 struct linkman * next; }; struct linkman * creat(void) //创建空间(联系人)的函数 { struct linkman * head; struct linkman * p1,* p2; printf("Add linkman's name telephone number and address please!\n"); head = NULL; do { p1=(struct linkman *)malloc(LEN); memset(p1,0,LEN);/*把目标内存设置为0*/ p1->next = NULL; if(head == NULL) head = p1; else p2->next = p1; scanf("%s,%ld,%s,",p1->name,&p1->num,p1->add); p2=p1; }while(strcmp(p1->name,"0")!= 0);/*你这种判断会在最后生成一个没用的链表*/ return(head); } void print(struct linkman * head) //输出结果的函数 { struct linkman *p; printf("**->address book<-**\n"); p=head; if(head!=NULL) while(p->next !=NULL) { printf("%s,%ld,%s\n",p->name,p->num,p->add); p=p->next; } } void main() { linkman *head; head = creat();/*creat是返回链表指针*/ print(head);/*传递指针*/ }