通常我只是潜伏在论坛中,直到找到可以帮助我的提示,但为此......我不知道。
所以相关的代码是
struct com_stack
{
unsigned el_num;
struct command *st;
unsigned top;
};
void com_push (com_stack* s,command input) //error regarding this line
{
if(s->top == (s->el_num - 1))
{
s->el_num+=64;
s->stk=(command*)realloc(s->stk,sizeof(struct command)*s->el_num);
}
s->stk[s->top]=input;
s->top++;
}
我相信我为包含命令的堆栈正确创建了结构。因为 el_num 稍后将被分配为堆栈的初始大小,而 top 是位于顶部的元素编号。
我不确定我是否正确处理我的推送功能。我想做的是发送堆栈指针和我试图插入的单个命令。
任何帮助或建议将不胜感激。
最佳答案
Typedef
您的struct
或在type
的函数中指定struct
。
此外,名为 com_stack
的 struct
没有成员 stk
,但有成员 st
。
struct com_stack
{
unsigned el_num;
struct command *st;
unsigned top;
};
void com_push (struct com_stack* s, struct command input) // <-- add "struct"
{
if(s->top == (s->el_num - 1))
{
s->el_num+=64;
s->st=(struct command*)realloc(s->stk,sizeof(struct command)*s->el_num); // <-- st, not stk and need "struct" here as well
}
s->st[s->top]=input; // <-- st, not stk
s->top++;
}
关于在C中创建一个堆栈,得到 "error error: expected ' )' before ' *' token ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29552068/