Problema de punteros
Publicado por J. Oliver Beltran (166 intervenciones) el 27/02/2004 13:25:51
Se que es una tonteria, pero por más vueltas que le doy, no acierto. He definido una lista de la siguiente manera:
typedef struct Nodo{
char *nombre;
int id;
Nodo *sig;
}
declaro un puntero a Nodo: Nodo *Lista
y una función para insertar
void Insertar(Nodo *Lista, Nodo N)
{
Nodo *aux;
if (Lista == NULL)
{
Lista = (Nodo*)malloc(sizeof(Nodo));
Lista->nombre = N.nombre;
Lista->id = N.id;
Lista->sig = NULL;
}
else
{
aux=Lista;
while (aux->sig!=NULL){ aux=aux->sig;} aux->sig = (Nodo*)malloc(sizeof(Nodo));
aux=aux->sig;
aux->nombre = N.nombre;
aux->id = N.id;
aux->sig = NULL;
}
}
Y cuando llamo desde el principal a Insertar, me lo sigue dejando a NULL. Se que es un problema de paso de parametros, pero no atino.
La llamada a insertar es Insertar(Lista,nod);
typedef struct Nodo{
char *nombre;
int id;
Nodo *sig;
}
declaro un puntero a Nodo: Nodo *Lista
y una función para insertar
void Insertar(Nodo *Lista, Nodo N)
{
Nodo *aux;
if (Lista == NULL)
{
Lista = (Nodo*)malloc(sizeof(Nodo));
Lista->nombre = N.nombre;
Lista->id = N.id;
Lista->sig = NULL;
}
else
{
aux=Lista;
while (aux->sig!=NULL){ aux=aux->sig;} aux->sig = (Nodo*)malloc(sizeof(Nodo));
aux=aux->sig;
aux->nombre = N.nombre;
aux->id = N.id;
aux->sig = NULL;
}
}
Y cuando llamo desde el principal a Insertar, me lo sigue dejando a NULL. Se que es un problema de paso de parametros, pero no atino.
La llamada a insertar es Insertar(Lista,nod);
Valora esta pregunta


0