none
Error al declarar nodos.. RRS feed

  • Pregunta

  • Pues estoy empezando con esto de las estructuras y nodos y tengo un problema con este pequeño programa..

    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    
    typedef struct Nodo nodo,*lista;
    struct nodo
    {
        char dato;
        lista prox;
    };
     #define NEXT(l)((l)->prox)
        #define DATA(l)((l)->dato)
    
    lista CrearNodo()
    {
    
    
        lista l=(lista)malloc(sizeof(struct nodo));
        if(l!=NULL)
        {
            DATA(l)=32;
            NEXT(l)=NULL;
        }
        return(l);
    }
    
    void AgregarNodo(lista head, lista n)
    {
        lista l=NULL;
        for(l=head;NEXT(l)!=NULL;l=NEXT(l))
        NEXT(l)=n;
    }
    

    En todas las partes del código donde se encuentran NEXT y DATA me lanza este error..  dereferencing pointer to incomplete type.. 

    Si alguien sabe como podría solucionarlo, se los agradeceria..

    jueves, 15 de octubre de 2015 14:59

Respuestas

  • typedef struct nodo Nodo, *lista;
    ó
    typedef struct nodo *lista;

    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    
    typedef struct nodo Nodo, *lista;
    //typedef struct nodo *lista;
    
    struct nodo
    {
    	char dato;
    	lista prox;
    };
    
    #define NEXT(l)((l)->prox)
    #define DATA(l)((l)->dato)
    
    lista CrearNodo()
    {
    	lista l= (lista)malloc(sizeof(struct nodo));
    	if(l!=NULL)
    	{
    		DATA(l)=32;
    		NEXT(l)=NULL;
    	}
    	return(l);
    }
    
    void AgregarNodo(lista head, lista n)
    {
    	lista l=NULL;
    	for(l=head;NEXT(l)!=NULL;l=NEXT(l))
    		NEXT(l)=n;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	lista lst = CrearNodo();
    
    	printf("%d\n", lst->dato); 
    	
    	return 0;
    }
    

    • Marcado como respuesta Argenis R R jueves, 15 de octubre de 2015 18:16
    jueves, 15 de octubre de 2015 15:47