表达式语法错误

时间:2016-04-09 20:54:26

标签: c

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

typedef struct node
{
    int data;
    struct node *next;
}node;

node *create_cll(node *head,int n);

void main()
{
    clrscr();
    node *head,*p;
    int n;
    printf("Enter the no.of elements:");
    scanf("%d",&n);
    head=create_cll(*head,int n);
    getch();
}

node *create_cll(node *head,int n)
{
    node *rear,*p;
    int i;
    head=p;
    for(i=1;i<n;i++)
    {
        p=(node*)malloc(sizeof(node));
        scanf("%d",&p->data);
        p=rear;
        rear->next=p;
        p=p->next;
    }
    printf("Circular linked list created..!");
    return (head);
}

代码是关于创建循环链表。 但是这里我有一个表达式语法的错误,我无法解决。 错误位于main()部分中head等于函数的行中。 所以我需要帮助...

2 个答案:

答案 0 :(得分:0)

您需要传递ptr到节点,而不是节点;并删除int关键字:

head = create_cll(head, n);

在其他新闻中:

  • C中的int main,而不是void main
  • 请勿在C
  • 中投放malloc的回报
  • 不测试scanf的返回值是确定的惊喜。
  • printf格式字符串通常在结尾处有换行符"\n"
  • <conio.h>getch不是C(即使盖茨先生希望您相信这一点。)请改用getchar()

答案 1 :(得分:0)

head已经是指针

代码中的

*head可以更改为head,如下面的方法定义所示。