#include <stdio.h>
struct nodo
{
int dato;
struct nodo *siguiente;
};
typedef struct nodo NODO;
typedef NODO *NODOSIG;
void f1(NODOSIG *lista);
void f2(NODOSIG **lista, NODOSIG *nuevo);
int main()
{
NODOSIG LISTA = NULL;
f1(&LISTA);
return 0;
}
void f1(NODOSIG *lista)
{
NODOSIG NUEVO;
int x;
NUEVO = malloc(sizeof(NODO));
if(NUEVO != NULL){
printf("\n\tIngrese un numero: ");
scanf("%d", &x);
NUEVO->dato = x;
NUEVO->siguiente = NULL;
f2(&lista, &NUEVO);
}
}
void f2(NODOSIG **lista, NODOSIG *nuevo)
{
lista->siguiente = *lista;
*lista = nuevo;
}
Buenas, tengo este pedazo de código en el cual busco en la función 1 crear un nodo y en la función 2 (anidada a 1) encadenarlo por el principio, sé que se puede hacer todo en una función pero quiero hacerlo así porque dependiendo de el dato es sí, se va a encadenar al principio o al final (existencia de una función 3), el problema es que como en el título dice marca error en la siguiente linea de la función 2:
nuevo->siguiente = *lista;