我遇到了完全未知的错误。我已经在Internet上搜索了有关该错误的信息,但是出现的错误却无法解决,该错误在以下代码行中:

if(opcion==1 && ((*Lista)->PrimerNodo->siguiente)==((*Lista)->UltimoNodo))

我收到的错误消息是:
error: base operand of `->` has non-pointer type `ListaCircular`

指针*ListaListaCircular类型,而ListaCircular是如下构建的结构:
struct ListaCircular{
    Nodo *PrimerNodo,*UltimoNodo;
    ListaCircular(){
        PrimerNodo->anterior=UltimoNodo;
        PrimerNodo->siguiente=UltimoNodo;
        UltimoNodo->anterior=PrimerNodo;
        UltimoNodo->siguiente=PrimerNodo;
    }
*PrimerNodo*UltimoNodo是类型节点,其结构如下:
struct Nodo{
long Cedula,Telefono;
Nodo *siguiente,*anterior;
char* Nombre,Apellido,Correo;

Nodo()
{
  siguiente=anterior=NULL;
}

有什么想法可以解决错误吗?

最佳答案

如果Lista是指向ListaCircular的指针,例如:

 ListaCircular *Lista = ....

那么您的if语句应如下所示:
 if(opcion==1 && (Lista->PrimerNodo->siguiente)==(Lista->UltimoNodo))

错误消息基本上是在告诉您,当您使用Lista取消引用*时,要返回的类型不是指针。

10-04 21:15