【发布时间】:2016-01-08 16:18:43
【问题描述】:
当我尝试在通过引用传递它的函数中访问我的结构时,编译器会显示以下错误:
error: member reference base type 'Pila' (aka 'struct tipoCelda *') is not a structure or union
**p = p->sig;**
这里是头文件中结构的原型:
typedef int tipoElemento;
typedef struct tipoCelda {
tipoElemento elemento;
struct tipoCelda * sig;
} tipoCelda;
typedef tipoCelda * Pila;
这是我得到错误的函数:
tipoElemento pilaSuprime (Pila *p){
tipoElemento borrado;
if (pilaVacia(p) == 1)
printf ("\n\nNO SE PUEDE BORRAR.La pila esta vacia\n");
else{
borrado = p->elemento;
p->elemento = 0;
p = p->sig;
}
return borrado;
}
由于这 3 行,我收到了消息:
borrado = p->elemento;
p->elemento = 0;
p = p->sig;
我在main中声明栈,然后调用函数:
Pila variablePila;
//////OTHER ACTIONS//////
pilaSuprime(variablePila)
我正在尝试删除链表的一个节点,该节点的作用类似于堆栈,但我无法编译它。
【问题讨论】:
-
您不应该将
&variablePila从您的主函数传递给该函数吗?您的函数采用Pila*,而不是Pila。
标签: c struct linked-list