读书人

链表不能展示结果

发布时间: 2012-09-06 10:37:01 作者: rapoo

链表不能显示结果,,,

C/C++ code
//films2.c   使用结构链表#include <stdio.h>#include <stdlib.h>    //提供malloc()原型#include <string.h>    //提供strcpy()原型#define TSIZE 45       //存放片名的数组大小struct film{    char title[TSIZE];    int rating;    struct film * next;    //指向链表的下一个结构};int main(void){    struct film * head = NULL;    //初始化头指针    struct film * prev, * current;    char input[TSIZE];    //收集并存储信息    puts("Enter first movie title: ");    while(gets(input) != NULL && input[0] != '\0')    {        current = (struct film *) malloc(sizeof(struct film));        if (head = NULL)   //第一个结构            head = current;        else               //后续结构            prev->next = current;        current->next = NULL;        strcpy(current->title,input);        puts("Enter your rating <0-10>: ");        scanf("%d",&current->rating);        while(getchar() != '\n')            continue;        puts("Enter next movie title (empty line to stop): ");        prev = current;        }    //给出电影列表    if(head = NULL)        printf("No data entered. ");    else        printf("Here is the movie list: \n");    current = head;    while(current != NULL)    {        printf("Movie: %s Rating: %d\n",current->title,current->rating);        current = current->next;    }    //任务已完成,因此释放所分配的内存    current = head;    while(current != NULL)    {        free(current);        current = current->next;    }    printf("Bye!\n");    return 0;}


输入几条信息之后,以空行结束。
可是显示
Here is the movie list:
Bye!
程序就关闭了,何解?

[解决办法]
C/C++ code
if(head = NULL) 

读书人网 >C语言

热点推荐