Hola a todos, esta es la primera vez que entro en este foro, a ver si me pueden ayudar.
Tengo un programa que trabaja llamando a funciones con argumentos que son apuntadores a estructuras, les pongo la parte de código que me interesa:
void Programa(void)
{
nodo_ref *dec_listaerrores=(nodo_ref *)malloc(sizeof(nodo_ref *));
una_funcion(dec_listaerrores);
}
void una_funcion(nodo_ref *dec_listaerrores)
{
nodo_ref *dec1_listaerrores=(nodo_ref *)malloc(sizeof(nodo_ref));
nodo_ref *dec2_listaerrores=(nodo_ref *)malloc(sizeof(nodo_ref));
if (!strcmp(lookahead->cadena,"hola"))
{
otra_funcion(dec1_listaerrores);
una_funcion(dec2_listaerrores);
dec_listaerrores= UNIR(dec1_listaerrores, dec2_listaerrores);
}
else
dec_listaerrores= NULL;
}
nodo_ref esta definido de la forma:
typedef struct e_nodo {
int ref;
struct e_nodo *sig;
} nodo_ref;
El problema es que por ejemplo, si entro a "una_funcion" y lookahead->cadena no es "hola" se va por la parte del else asignando NULL a dec_listaerrores, pero cuando vuelve al procedimiento Programa dec_listaerrores ya no apunta a NULL.
Espero haberme explicado bien. Les estaría muy agradecido si me explicasen porqué pasa esto y qué tengo que hacer para solucionarlo.
Muchas gracias de antemano.