Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: wyuman en 7 Abril 2014, 05:36 am



Título: listas encadenadas
Publicado por: wyuman en 7 Abril 2014, 05:36 am
Buena noche compañeros, aca solicitando su ayuda, ya que no le entiendo a este error, si alguien puede ayudarme. Gracias.

Estoy aprendiendo a programar con C y estoy trabajando en estos momentos con listas encadenadas pero este error me estas saliendo y no le entiendo.

Este es el codigo que tengo

Código:
void insertdepa(struct depa **A, char linea2[]){
struct depa *n, *p;
mientras = strtok(linea2,"(");
while (mientras != NULL)
      {
      mientras = strtok(NULL," )");
if((*A)==NULL)
      {
          n = (struct depa *) malloc (sizeof(struct depa));
            n->dato = mientras;
            n->sig = NULL;
            n->con = NULL;
            (*A) = n;
         }else{
         p=(*A);
         while(p->sig!=NULL)
          {
            p=p->sig; [b]//Esta linea me muestra el primer error[/b]
            }
         n = (struct depa *) malloc (sizeof(struct depa));
         n->dato = mientras;
         n->sig = NULL;
         n->con = NULL;
         p->sig = n; [b]//este es la segunda linea con error[/b]
         }
      }
}

Y este es el error que obtengo.
Cannot Convert 'nodo *' to 'depa *'
Cannot Convert 'depa *' to 'nodo *'


Si alguien me puede ayudar se lo agradeciera muchisimo.


Título: Re: listas encadenadas
Publicado por: eferion en 7 Abril 2014, 09:07 am
El problema lo tienes en la definición de tu estructura.

No la has puesto, pero tiene pinta que tiene una definición tal que

Código
  1. struct depa
  2. {
  3.  char* dato;
  4.  struct nodo* sig;
  5.  algo* con; // No queda claro el tipo de este, aunque es irrelevante.
  6. };

Si mi deducción es correcta, esta parte del código funcionaría dejando la estructura así:

Código
  1. struct depa
  2. {
  3.  char* dato;
  4.  struct depa* sig;
  5.  algo* con;
  6. };


Título: Re: listas encadenadas
Publicado por: wyuman en 7 Abril 2014, 17:05 pm
Si es correcto eferion ese era mi error,  ya pude insertar en mi lista.
Gracias.