2015-11-13 2 views
0
//linked list implementation 
#include<stdio.h> 
#include<stdlib.h> 
struct node 
{ 
    int data; 
    struct node* link; 
    }; 
struct node* head; 
void insert(int); 
void print(); 
int main() 
{ 
    head=NULL; 
    int n,i,x; 
    printf("\nEnter the number of elements :"); 
    scanf("%d",&n); 
    for(i=0;i<n;i++) 
    { 
    printf("\nEnter the element :"); 
    scanf("%d",&x); 
    insert(x); 
    print(); 
    } 
    } 

    void insert(int x) 
    { 
    struct node* temp=(node*)malloc(sizeof(struct node)); 
    temp->data=x; 
    temp->link=head; 
    head=temp; 
    } 
    void print() 
    { 
    struct node* temp=head; 
    int i=0; 
    printf("\nThe list is "); 
    while(temp!=NULL) 
    { 
     printf("%d ",temp->data); 
     temp=temp->link; 
    } 
    printf("\n"); 
    } 

При составлении кода:Что не так с этим кодом c (реализация связанного списка)?

In function 'insert': 
28:24: error: 'node' undeclared (first use in this function) 
    struct node* temp=(node*)malloc(sizeof(struct node)); 
         ^
28:24: note: each undeclared identifier is reported only once for each function it appears in 
28:29: error: expected expression before ')' token 
    struct node* temp=(node*)malloc(sizeof(struct node)); 
          ^
+1

'(node ​​*)' должно быть '(struct node *)' Голосование закрывается как опечатка. – dasblinkenlight

+0

'struct node *'? – Unimportant

+0

Используйте 'typedef struct node {/ * ToDo - добавьте сюда здесь * /} узел' для менее типизации. – Bathsheba

ответ

0

Изменение следующее утверждение

struct node* temp=(node*)malloc(sizeof(struct node)); 

в,

struct node* temp=(struct node*)malloc(sizeof(struct node)); 

Иногда я делать подобные ошибки.

+3

Литой 'malloc'? Ты плохой человек. – Bathsheba

+0

Нет необходимости бросать malloc в C. Моя точка зрения заключается в том, что если мы дадим такой короткий ответ, вы можете избежать металирования malloc с Объяснением. – Michi

5
  1. node* не то же самое, как struct node* в этом контексте в C, так и для C++.

  2. Старайтесь избегать излишних бросков в C. На самом деле старайтесь избегать лишних бросков на любом языке, где это не требуется. Do I cast the result of malloc?

 Смежные вопросы

  • Нет связанных вопросов^_^