con q me salta me refiero a q me da error y tengo q cerrarlo.
Tengo el siguiente codigo:
Main
Código:
int opcion=10;
struct personas *primera;
struct personas *ultima;
int nPersonas=0;
scanf("%d",&opcion);
fflush(stdin);
switch(opcion){
case 3: {
primera=insertar(&primera, &ultima, &nPersonas);
break;
}
case 4: {
mostrar(primera);
break;
}
default: {
puts("No es una opcion valida");
}
}
funciones:
Código:
void insertar(struct personas **primera, struct personas **ultima, int *nPersonas){
struct personas *persona;
if ((persona=malloc(sizeof(struct personas)))==NULL){
puts("Error al asignar la memoria");
} else {
puts("Dime el nombre de la persona: ");
gets(persona->nombre);
fflush(stdin);
puts("Dime la edad: ");
scanf("%d",&persona->edad);
fflush(stdin);
persona->siguiente=NULL;
if ((*nPersonas)==0){
*ultima=persona;
*primera=persona;
} else {
(**ultima).siguiente=persona;
*ultima=persona;
}
(*nPersonas)++;
printf("Nombre: %s\nEdad: %d",(**ultima).nombre,(**ultima).edad);
puts("Insercion correcta");
}
}
void mostrar(struct personas *primera){
struct personas *perActual=primera;
printf("Nombre: %s\nEdad: %d\n",perActual->nombre, perActual->edad);
}
he eliminado el bucle de mostrar pero aun asi me salta error al intentar mostrar pero no veo el xk.
Tmp nose xk **ahora la segunda vez q intento insertar una persona me salta error, si antes lo probe y funcionaba, peta justo en el if pero no hace ni el if ni el else :S. Nose, no lo entiendo si lo veo bien