• Viernes 8 de Noviembre de 2024, 06:51

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Bond

Páginas: [1]
1
C/C++ / Segmentation Fault En Programa C
« en: Miércoles 29 de Agosto de 2007, 08:10 »
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:

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. struct fecha
  5. {
  6.    int dia, mes, anyo;
  7. };
  8.  
  9. struct ficha
  10. {
  11.    char nombre[40];
  12.    char direccion[40];
  13.    long telefono;
  14.    struct fecha fecha_nacimiento;
  15. }tficha;
  16.  
  17.  
  18. int main()
  19. {
  20.    struct ficha persona, otra_persona;
  21.  
  22.    
  23.    printf("Nombre:  ");
  24.    gets(persona.nombre);
  25.    printf("Direccion:  ");
  26.    gets(persona.direccion);
  27.    printf("telefono:  ");
  28.    scanf("%ld", &persona.telefono);
  29.    printf("Fecha nacimiento:\n");
  30.    printf("Dia:    ");
  31.    scanf("%d", persona.fecha_nacimiento.dia);
  32.    printf("Mes:    ");
  33.    scanf("%d", persona.fecha_nacimiento.mes);
  34.    printf("Anyo    ");
  35.    scanf("%d", persona.fecha_nacimiento.anyo);
  36.    
  37.    
  38.    otra_persona = persona;
  39.  
  40.    
  41.    printf("\n\n");
  42.    printf("Nombre:  %s\n", otra_persona.nombre);
  43.    printf("Direccion:   %s\n", otra_persona.direccion);
  44.    printf("Telefono:  %ld\n", otra_persona.telefono);
  45.    printf("FEcha nacimiento\n");
  46.    printf("dia:    %d\n", otra_persona.fecha_nacimiento.dia);
  47.    printf("mes:    %d\n", otra_persona.fecha_nacimiento.mes);
  48.    printf("anyo:  %d\n", otra_persona.fecha_nacimiento.anyo);
  49.  
  50. }
  51.  
  52.  


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:

Código: Text
  1.  
  2. debian$ ./e1
  3. Nombre: sonny
  4. Direccion:      av america
  5. telefono:       33333333
  6. Fecha nacimiento:
  7. Dia:            5
  8. Mes:            5
  9. Segmentation fault
  10.  
  11.  
  12.  


No consigo ver que estoy haciendo mal.


Gracias anticipadas.

Páginas: [1]