Un saludo a todos.
En un programa de c muy básico sobre estructuras, obtengo un segmentation fault en la ejecución y no soy capaz de ver el fallo.
El programa es este:
#include <stdio.h>
struct fecha
{
int dia, mes, anyo;
};
struct ficha
{
char nombre[40];
char direccion[40];
long telefono;
struct fecha fecha_nacimiento;
}tficha;
int main()
{
struct ficha persona, otra_persona;
printf("Nombre: ");
gets(persona.nombre);
printf("Direccion: ");
gets(persona.direccion);
printf("telefono: ");
scanf("%ld", &persona.telefono);
printf("Fecha nacimiento:\n");
printf("Dia: ");
scanf("%d", persona.fecha_nacimiento.dia);
printf("Mes: ");
scanf("%d", persona.fecha_nacimiento.mes);
printf("Anyo ");
scanf("%d", persona.fecha_nacimiento.anyo);
otra_persona = persona;
printf("\n\n");
printf("Nombre: %s\n", otra_persona.nombre);
printf("Direccion: %s\n", otra_persona.direccion);
printf("Telefono: %ld\n", otra_persona.telefono);
printf("FEcha nacimiento\n");
printf("dia: %d\n", otra_persona.fecha_nacimiento.dia);
printf("mes: %d\n", otra_persona.fecha_nacimiento.mes);
printf("anyo: %d\n", otra_persona.fecha_nacimiento.anyo);
}
Como podéis ver lo único que hace este programa es crear 2 estructuras, introducir datos en una através del teclado, copiar una a otra, y después imprimir la última por monitor.
Todo compila bien y a la hora de ejecución pasa esto:
debian$ ./e1
Nombre: sonny
Direccion: av america
telefono: 33333333
Fecha nacimiento:
Dia: 5
Mes: 5
Segmentation fault
No consigo ver que estoy haciendo mal.
Gracias anticipadas.