Código:
me da los sig. errores por cada linea que esta en rojo#include <stdlib.h> #include <stdio.h> #include <string.h> struct agenda{ int valor; char nombre[30]; char apellido[30];}; typedef struct _nodo { struct agenda datos; struct _nodo *siguiente; } tipoNodo; char *nomaux, *apeaux; int *vaux; typedef tipoNodo *pNodo; typedef tipoNodo *Pila; /* Funciones con pilas: */ void Push(Pila *l,int pvalor,char papellido[],char pnombre[]); struct agenda Pop(Pila *l); int main() { struct agenda salida; int num,i,val; char nom[30],ape[30]; nomaux=nom; apeaux=ape; vaux=&val; Pila pila = NULL; printf("Ingreso de datos de personas, cuantas personas son: \n"); scanf("%i",&num); for(i=0;i<num;i++){ printf("\n digite el nombre de la persona no. %i",i+1); gets(nom); printf("\n digite el apellido de la persona no. %i",i+1); gets(ape); printf("\n digite la edad de la persona no. %i",i+1); scanf("%i",&val); Push(&pila,val,ape,nom);} getchar(); return 0; } void Push(Pila *pila,int pvalor,char papellido[30],char pnombre[30]){ pNodo nuevo; /* Crear un nodo nuevo */ nuevo = (pNodo)malloc(sizeof(tipoNodo)); nuevo->datos.valor = pvalor; strcpy(nuevo->datos.nombre,pnombre); strcpy(nuevo->datos.apellido,papellido); /* Añadimos la pila a continuación del nuevo nodo */ nuevo->siguiente = *pila; /* Ahora, el comienzo de nuestra pila es en nuevo nodo */ *pila = nuevo;} struct agenda Pop(Pila *pila){ struct agenda salida; pNodo nodo; /* variable auxiliar para manipular nodo */ /* Nodo apunta al primer elemento de la pila */ nodo = *pila; if(!nodo){ salida.valor=0; return salida; /* Si no hay nodos en la pila retornamos 0 */} /* Asignamos a pila toda la pila menos el primer elemento */ *pila = nodo->siguiente; /* Guardamos el valor de retorno */ strcpy(salida.apellido,pila->datos.apellido); strcpy(salida.nombre,pila->datos.nombre); strcpy(salida.valor,pila->datos.valor); /* Borrar el nodo */ free(nodo); return salida;}
`datos' has not been declared
request for member of non-aggregate type before '.' token