Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/06/2015, 08:54
GerardoVF78
 
Fecha de Ingreso: junio-2015
Mensajes: 4
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Duda programación en C

Gracias por tu comentario, ahora permite escribir los datos, sin embargo, en la propia ejecución, cuando va a mostrar los datos se "crashea" el programa, dejo el nuevo código:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4.  
  5. struct Datos{
  6.     char *nombre;
  7.     int edad;
  8.     double telef;
  9.     struct Datos *sig;
  10. };
  11.  
  12. typedef struct Datos miembro;
  13.  
  14. miembro *CrearMiembro(miembro *Lista, double telefono, int anios, char *name){
  15.    
  16.     miembro *NuevoMiembro, *aux;
  17.     NuevoMiembro = (miembro *) malloc(sizeof(miembro));
  18.    
  19.     if(NuevoMiembro != NULL){
  20.         NuevoMiembro->edad = anios;
  21.         NuevoMiembro->telef = telefono;
  22.         NuevoMiembro->nombre = name;
  23.         NuevoMiembro->sig = NULL;
  24.     }
  25.    
  26.         if (Lista == NULL){
  27.             Lista = NuevoMiembro;
  28.         }
  29.         else{
  30.             aux = Lista;
  31.            
  32.             while(aux->sig != NULL){
  33.                 aux = aux->sig;
  34.             }
  35.            
  36.             aux = NuevoMiembro;
  37.         }
  38.    
  39.     return Lista;
  40. }
  41.  
  42. void ImprimirLista(miembro *Lista){
  43.    
  44.     miembro *aux;
  45.    
  46.     aux = Lista;
  47.    
  48.     printf("La Lista contiene los siguientes datos: \n");
  49.    
  50.     while(aux!=NULL){
  51.        
  52.         printf("Edad: /%d Telefono: %d Nombre: %s -> \n", aux->edad, aux->telef, aux->nombre);
  53.         aux = aux->sig;
  54.        
  55.     }
  56.    
  57.     printf("NULL");
  58. }
  59.  
  60. int main(){
  61.    
  62.     miembro* Lista1 = (miembro*)malloc(sizeof(miembro));
  63.    
  64.     char *Nombre;
  65.     int age;
  66.     double teleph;
  67.    
  68.     Lista1 = NULL;
  69.    
  70.     printf("Indique el nombre que quiere introducir: ");
  71.     scanf("%s", &Nombre);
  72.     printf("\n");
  73.    
  74.     fflush(stdin);
  75.    
  76.     printf("Indique el telefono: ");
  77.     scanf("%d", &teleph);
  78.     printf("\n");
  79.    
  80.     printf("Indique la edad: ");
  81.     scanf("%d", &age);
  82.    
  83.     Lista1 = CrearMiembro(Lista1, teleph, age, Nombre);
  84.     ImprimirLista(Lista1);
  85.    
  86.     free(Lista1);
  87.    
  88.    
  89.     system("PAUSE");
  90. }