Ahora estoy creando una lista en donde voy agregando los elementos al final de modo recursivo, pero me sale ciertos errores, entiendo que es un problema en los punteros pero he visto varias funcionalidades de otras personas que lo escriben asi y al parecer no les sale el mismo inconveniente, o como seria la correcta forma de escribirlo? si me pueden ayudar seria de gran ayuda!
Código
#include <stdio.h> #include <stdlib.h> typedef struct rLista { int dato; struct rNodo * sig; } * tLista; tLista * crear_nodo (int nuevo_dato) { (*nuevo_elemento)->dato = nuevo_dato; (*nuevo_elemento)->sig = NULL; return nuevo_elemento; } tLista agregar_final (tLista * ppio, tLista * nuevo_elemento) { if (!ppio) ppio = nuevo_elemento; else ppio->sig = agregar_final(ppio->sig,nuevo_elemento); //error: '*ppio' is a pointer; did you mean to use '->'? return *ppio; } int contar_elementos (tLista * ppio) { int contador; if (!ppio) return 0; else contador = contar_elementos(ppio->sig); // error: '*ppio' is a pointer; did you mean to use '->'? return contador; } int main (void) { tLista ppio = NULL; ppio = agregar_final(&ppio,crear_nodo(5)); return 0; }