为什么这不起作用?[linklist]

时间:2013-03-15 14:18:24

标签: c linked-list typedef

#include<conio.h>
#include<stdio.h>
#include<alloc.h>
typedef struct node
{
    int data;
    struct node *n_next,*next,*p_pre,*pre;
};

int main()
{
    node *head,*p,*q,*r,*s;
    head=(struct node*) malloc(sizeof(struct node));
    p=head;
    q=(struct node*) malloc(sizeof(struct node));
    r=(struct node*) malloc(sizeof(struct node));
    s=(struct node*) malloc(sizeof(struct node));

    printf(" \nEnter the data of the node ");
    scanf("%d",&p->data);

    printf("\nEnter the data for second node ");
    scanf("%d "&q->data);

    printf("\nEnter the data for third node ");
    scanf("%d "&r->data);

    printf("\nEnter the data for fourth node ");
    scanf("%d ",&s->data);
    getch();
    return(0); 
}

编译之后,代码需要获取4个数据值并将它们存储在受尊重节点的数据字段中,但它表示..

  

的scanf( “%d”,&安培;对 - &GT;数据); //非法使用指针????怎么会这样?

代码的哪一部分被破坏并应该修复?

1 个答案:

答案 0 :(得分:2)

你的typedef错了,它应该是:

typedef struct node
{
   int data;
   struct node *n_next,*next,*p_pre,*pre; 
} node; // <---

你在scanf的一些电话中错过了逗号:

scanf("%d "&q->data);