哪里错了、、????????????????????》

来源:百度知道 编辑:UC知道 时间:2024/05/13 02:55:47
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#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;

puts("Enter your rating<0-10>: ");
scanf("%d",¤t->rating);
while(getchar()!='\n')
continue;

括号的匹配方式不对

current =(struct film * malloc(sizeof(struct film));/*这句怎么错了*/
这么改就可以了:
current =(struct film *) malloc(sizeof(struct film));

current =(struct film * malloc(sizeof(struct film));前面多了半个括号!

current =(struct film * malloc(sizeof(struct film));
可以改成:
current =(struct film * malloc(sizeof(struct film)));
或者:
current =struct film * malloc(sizeof(struct film));
就是括号问题...