我遇到了完全未知的错误。我已经在Internet上搜索了有关该错误的信息,但是出现的错误却无法解决,该错误在以下代码行中:
if(opcion==1 && ((*Lista)->PrimerNodo->siguiente)==((*Lista)->UltimoNodo))
我收到的错误消息是:
error: base operand of `->` has non-pointer type `ListaCircular`
指针
*Lista
是ListaCircular
类型,而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
取消引用*
时,要返回的类型不是指针。