Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/11/2013, 03:28
Fernando_net
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Problema con array, char y int

Hola de nuevo.

Pues lo he intentado implementar y solamente me muestra uno, no me muestra la lista entera de personas que han entrado al sistema.

Para tu información comentarte que he utilizado el método que he visto en el otro post que respondiste hace poco.

Este es el código:

Código C:
Ver original
  1. struct cliente {
  2.   char *nombre_cliente;
  3.   struct cliente *siguiente;
  4. };
  5.  
  6. void insertar(struct cliente **final, char *nombre){
  7.    struct cliente *cliente1, *cliente2;
  8.  
  9.    //reservo memoria para el nuevo dato
  10.    cliente1 = malloc(sizeof(struct client));
  11.    cliente1->nombre_cliente = nombre;
  12.    cliente1->siguiente = 0;
  13.  
  14.    //si la lista no existe, se asigna el nuevo dato como base
  15.    if(!(cliente2= *final)) {
  16.       *final = cliente1;
  17.    }
  18.    else {
  19.       //si la lista existe, se busca el ultimo elemento y se asigna el nuevo como siguiente
  20.       while(cliente2->siguiente) {
  21.          cliente2 = cliente2->siguiente;
  22.       }
  23.       cliente2->siguiente = cliente1;
  24.    }
  25. }
  26.  
  27. void muestra(struct cliente *lista) {
  28.     struct cliente *cliente1;
  29.  
  30.     //simplemente recorre la lista
  31.     cliente1 = lista;
  32.     while(cliente1) {
  33.         printf("%s\n", cliente1->nombre);
  34.         cliente1 = cliente1->siguiente;
  35.     }
  36. }

Y esto es el main()

Código C:
Ver original
  1. char *nom;
  2.    nom = strtok(mensaje, " ");
  3.    nom = strtok(NULL, " ");
  4.              
  5.    struct client *real;
  6.    real=0;
  7.              
  8.    insertar(&real,nom);
  9.              
  10.    muestra(real);