指向C中的struct的指针

银子

我正在使用指针和结构在C中实现堆栈实现。Push和crateStack函数运行良好(它们都在内存中创建了新元素)。无论如何,pop函数不起作用,我也不知道为什么,这是该函数的代码:

int pop(element **lastStackEl)
{
  int poppedValue = *lastStackEl->value;
  element *temp = *lastStackEl->prev;
  free(*lastStackEl);
  *lastStackEl=temp;
  return poppedValue;
}

这是我的结构:

typedef struct Element {
  int value;
  struct Element *prev;
} element;

弹出函数的第一行和第二行中的编译器给出错误:

error: request for member 'value' in something not a structure or union
int poppedValue = *lastStackEl->value;
苏拉夫·戈什(Sourav Ghosh)

按照运算符的优先级,间接(取消引用)运算符(*)的出现晚于成员访问运算符(->)的出现。因此,如果没有明确的括号,您的陈述将像

int poppedValue = *(lastStackEl->value);

现在,lastStackEl作为指向element的指针的指针不能用作成员访问运算符的LHS。这就是错误消息的全部含义。

您需要先取消引用lastStackEl(以获取element*类型),然后才能使用->访问成员value你应该写

int poppedValue = (*lastStackEl)->value;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过指向C中的指针的指针从struct获取值

来自分类Dev

如何在 C 中取消引用指向 struct 的指针?

来自分类Dev

指向C ++中的指针的指针

来自分类Dev

无法在C中的struct中声明指向struct的指针数组

来自分类Dev

取消引用C中不完整类型的指针(指向struct的指针)

来自分类Dev

指向C中数组的指针

来自分类Dev

指向C中结构的指针

来自分类Dev

指向C中参数的指针

来自分类Dev

指向C中整数的指针

来自分类Dev

指向C ++中函数的指针

来自分类Dev

指向C ++中成员的指针

来自分类Dev

指向C中参数的指针

来自分类Dev

指向C ++中的函数指针的指针

来自分类Dev

指向C中的int指针数组的指针

来自分类Dev

在C ++中设置指向指针数据的指针

来自分类Dev

C-构造函数,最好返回struct或指向struct的指针?

来自分类Dev

如何在C中声明指向struct的指针数组,然后使用它?

来自分类Dev

Typedef指向C ++中C函数的指针

来自分类Dev

struct 内指向动态结构数组的指针 C

来自分类Dev

C const 指向 const struct 数组的指针作为函数参数

来自分类Dev

struct C ++中的类指针

来自分类Dev

指向c中堆栈位置的指针

来自分类Dev

指向C中动态数组的指针

来自分类Dev

指向标准C中的整数转换的指针

来自分类Dev

在C中解引用指向0的指针

来自分类Dev

在Python中访问指向结构的C指针

来自分类Dev

指向C#中的函数的指针

来自分类Dev

比较C中void指针指向的值

来自分类Dev

指向C ++中const int的指针