2015-11-19 2 views
0

Перед попыткой скомпилировать мой код я столкнулся с несколькими ошибками. Мой код представляет стек, используя LinkedList и указатели. Ошибки отмечены как комментарий. Я пропустил несколько методов, поскольку ошибка в методе «Создание нового элемента»Ожидаемый идентификатор в C-стеке с использованием связанного списка

Это ошибка:

In function ‘new_item’: 
framework_stack.c:36:9: error: expected identifier or ‘(’ before ‘->’ token 
    item->info = value; 
    ^
framework_stack.c:37:9: error: expected identifier or ‘(’ before ‘->’ token 
item->ptr = NULL; 
    ^

И код:

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

struct node 
{ 
    int info; 
    struct node *ptr; 
}*top,*top1,*temp; 

typedef struct node item; 

item *top = NULL; 

// my methods 
void push(item *elem); 
void *pop(); 
void empty(); 
void create(); 

int count = 0; 

void create() 
{ 
    top = NULL; 
} 

/* Creating new element */ 
item* new_item(int value) 
{ 
    item *temp = malloc(sizeof(item)); 
    item->info = value; // HERE IS THE ERROR 
    item->ptr = NULL; // HERE IS THE ERROR 
} 

void push(item *elem) 
{ 
    if (top == NULL) 
    { 
     top = elem; 
    } 
    else 
    { 
     top->ptr = elem; 
     top = elem; 
    } 
    count++; 
    item* head = NULL; 
+4

'item-> info' должен быть' TEMP-> info' и 'пункт * top' дважды объявлен – BlackDwarf

+0

Ах хорошо, спасибо. Где пункт * вверх объявляется дважды? Я использовал только элемент * top один раз – Blnpwr

+2

Как только сразу после определения 'struct node' и один раз в' item * top = NULL; ' – BlackDwarf

ответ

1

item тип, а не переменная.

Использование

temp->info = value; 
+0

Большое спасибо. – Blnpwr

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