我在尝试编译代码时遇到了一些错误。我的代码使用LinkedList和Pointers表示堆栈。错误标记为注释。我跳过了几种方法,因为错误发生在方法"创建新元素"
这是错误:
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;
答案 0 :(得分:1)
item
是一种类型,而不是变量。
使用
temp->info = value;