在C中创建一个堆栈,得到 "error error: expected ' )' before ' *' token "

标签 c

通常我只是潜伏在论坛中,直到找到可以帮助我的提示,但为此......我不知道。

所以相关的代码是

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_stackstruct 没有成员 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/

相关文章:

c - 当我在C中读取pcap时,如何绕过vlan头?

c - 如何定义 MPI_Type_struct,其中结构中涉及通用指针

c - "array"元素值是存储在一个位置还是不同的位置?

objective-c - Core Graphics 点彩化 CGImage 效果

c - 如何从一个 makefile 构建多个目标

c - 将数组的字符元素替换为用户输入输入的另一个字符

argc 在 POSIX 系统上可以为零吗?

c - 我的 gcc 编译器给了我一个错误,显示为(函数)的类型冲突

c - 如何读取字符串格式和分隔字段:value in ( C )

c - 为什么 scanf(%s) 中的 char 参数即使乱序也无法在 %c 中显示?