Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!postnews.google.com!news2.google.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail NNTP-Posting-Date: Sat, 09 Jun 2012 15:50:02 -0500 Message-ID: <4FD3B6FB.129B@mindspring.com> Date: Sat, 09 Jun 2012 16:50:03 -0400 From: pete Reply-To: pfiland@mindspring.com Organization: PF X-Mailer: Mozilla 3.04Gold (WinNT; I) MIME-Version: 1.0 Newsgroups: comp.lang.c Subject: Re: linked list References: <4FD32A2F.1A9E@mindspring.com> <4FD33350.63FA@mindspring.com> <15da424e-f82e-4580-ac2c-1fc8f7563c15@googlegroups.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 103 X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 4.154.216.98 X-Trace: sv3-UlWLIJTdmZWUYeempTMFlnoAFQhxr4BZYIN/fGkRX3o3E+E6z4Y8pJxdrFMeBOkPcoZ9AY+uEAfwysZ!UPwyuws4r/fxDUrGlosQoal5oHGQ51eBXfnSH0Q/hm13kfwOJdPSne8cjBhYso6yOSKsRcPWOC1o!pHAar7rZoQ== X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 3458 Xref: csiph.com comp.lang.c:22080 Zhang Yuan wrote: > > On Saturday, June 9, 2012 7:28:16 PM UTC+8, pete wrote: > > pete wrote: > > > while(curr -> num != 0){ > > > puts("enter name and age"); > > > scanf("%s%d", curr -> name, &(curr -> age)); > > > curr = malloc(sizeof *curr); > > > > That doesn't make any sense! > > scanf("%s%d", curr -> name, &(curr -> age)); > > if (1 > scanf("%d", &(head -> num))) { And then I screwed it up again! /* BEGIN new.c */ #include #include struct stu { struct stu *next; int num; int age; char name[12]; }; void stu_free(struct stu *head); void stu_print(struct stu *head); int main(void) { struct stu *curr, *head; puts("/* BEGIN new.c */ output\n"); head = malloc(sizeof *head); if (head != NULL) { curr = head; curr -> next = NULL; puts("enter number"); if (1 > scanf("%d", &(head -> num))) { puts("\n\nscanf problem.\n\n"); exit(EXIT_FAILURE); } while(curr -> num != 0) { puts("enter name and age"); if (1 > scanf("%s%d", curr -> name, &(curr -> age))) { stu_free(head); puts("\n\nscanf problem.\n\n"); exit(EXIT_FAILURE); } curr -> next= malloc(sizeof *(curr -> next)); if (curr -> next == NULL) { break; } curr = curr -> next; curr -> next = NULL; puts("enter number"); scanf("%d", &(curr -> num)); } *(curr -> name) = '\0'; curr -> age = 0; } stu_print(head); stu_free(head); puts("\n/* END new.c */ output"); return 0; } void stu_free(struct stu *head) { struct stu *next; while (head != NULL) { next = head -> next; free(head); head = next; } } void stu_print(struct stu *head) { while (head != NULL) { printf("\nnumber is %d\n", head -> num); printf("name is %s\n", head -> name); printf("age is %d\n", head -> age); head = head -> next; } } /* END new.c */ -- pete