Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con puntero

Estas en el tema de Problema con puntero en el foro de C/C++ en Foros del Web. Hola, estoy haciendo el proyecto de final de curso de programacion y me ha surgido el primer problema con esta funcion, que tiene por objetivo ...
  #1 (permalink)  
Antiguo 20/05/2008, 11:36
 
Fecha de Ingreso: abril-2008
Mensajes: 28
Antigüedad: 16 años, 6 meses
Puntos: 0
Problema con puntero

Hola,
estoy haciendo el proyecto de final de curso de programacion y me ha surgido el primer problema con esta funcion, que tiene por objetivo avanzar la secuencia de una lista con un puntero.

void SeguentLlista(tIteradorLlista *pactual)
{
if (EsNullIterador(*pactual) == 0){
*pactual = pactual->siguiente;
}
}
Error

154 request for member `siguiente' in something not a structure or union
  #2 (permalink)  
Antiguo 20/05/2008, 12:09
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 5 meses
Puntos: 28
Respuesta: Problema con puntero

Aparentemente tIteradorLlista no es una estructura o algo así, sería bueno que colocaras el código donde defines ese tipo de dato.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #3 (permalink)  
Antiguo 20/05/2008, 14:48
 
Fecha de Ingreso: abril-2008
Mensajes: 28
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problema con puntero

Ok aqui esta todo definido

typedef struct stNode {
char paraula[MAX_CARACTERS];
struct stNode *siguiente;
} tNode;

/* LISTA */
typedef struct {
tNode *primero;
} tLlista;

/* ITERADOR LISTA */
typedef tNode* tIteradorLlista;

Gracias
  #4 (permalink)  
Antiguo 20/05/2008, 16:15
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 11 meses
Puntos: 24
Respuesta: Problema con puntero

No estoy seguro pero creo que estas usando puntero a puntero, ya que tIteradorLlista esta como "typedef tNode *", y luego en la funcion SeguentLlista pones de nuevo el puntero: "tIteradorLlista *".
Por tanto, creo que te sobra el asterisco en uno de los dos sitios.
__________________
Grupos de Música
Pop Music Stars
  #5 (permalink)  
Antiguo 20/05/2008, 21:42
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 5 meses
Puntos: 28
Respuesta: Problema con puntero

¿Ves como se aclara un poco más el panorama?

Código:
void SeguentLlista(tIteradorLlista *pactual)
{
   if (EsNullIterador(*pactual) == 0){
      *pactual = (*pactual)->siguiente;
   }
}
Un detalle importante, estas cambiando la dirección que tiene almacenada el puntero, eso quiere decir que debes pasarlo por dirección (puntero doble), luego desreferencias el puntero para asignarle la dirección del nodo siguiente.

Aquí es casi media noche, si me equivoqué en algo pido disculpas...jejeje.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #6 (permalink)  
Antiguo 20/05/2008, 23:47
 
Fecha de Ingreso: abril-2008
Mensajes: 28
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problema con puntero

Solucionado,
muchas gracias a los dos.
  #7 (permalink)  
Antiguo 21/05/2008, 06:29
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 5 meses
Puntos: 28
Respuesta: Problema con puntero

Cita:
Iniciado por Adree Ver Mensaje
Solucionado,
...
No crees que si alguien tiene el mismo problema le interese saber como lo ¿solucionaste?
Cita:
Iniciado por Adree Ver Mensaje
...
muchas gracias a los dos.
De nada

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #8 (permalink)  
Antiguo 21/05/2008, 07:18
 
Fecha de Ingreso: abril-2008
Mensajes: 28
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problema con puntero

Ok Lucifer, pues simplemente tenia que poner otro asterisco ya que estaba llamando al puntero de un puntero, y para acceder a la información necesitaba 2 asteriscos tal y como tu has hecho.

Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.