Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2014, 19:57
TriN
 
Fecha de Ingreso: enero-2014
Mensajes: 47
Antigüedad: 10 años, 3 meses
Puntos: 0
Error en una lista dinamica simple

Buenas noches comunidad de forosweb, como siempre buscando de su buena ayuda, soy novato en c, y ando aprendiendo como trabajan las listas enlazadas, estoy haciendo una lista enlazada que guarde x cantidad de valores, y posteriormente los despliegue por pantalla, el codigo compila y ejecuta, sin embargo el problema comienza cuando se agregan mas de 6 numeros enteros, en el momento de imprimir, muestra correctamente algunos datos e imprime basura dejo acontinuación el codigo y impresiones de pantalla.





y este es el codigo gracias de antemano

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. main()
  5. {
  6. int *lista,i=0,r;
  7. puts("Lista enlazada");
  8.  
  9. lista=(int *) malloc(sizeof(int));
  10.  
  11. printf("\nElemento %d de la lista enlazada",i+1);
  12. scanf("%d",&*(lista));
  13. system("cls");
  14.         puts("Desea agregar otro elemento");
  15.         scanf("%d",&r);
  16.             while(r==1)
  17.             {
  18.                 i++;
  19.                 realloc(lista,i+1*sizeof(int));
  20.                 printf("Elemento %d de la lista enlazada",i+1);
  21.                 scanf("%d",&*(lista+i));
  22.                 system("cls");
  23.                         puts("Desea agregar otro elemento");
  24.         scanf("%d",&r);
  25.                
  26.             }
  27.    
  28.     for(int x=0;x<i+1;x++)
  29.     {
  30.     printf("%d ",lista[x]);
  31.    
  32.     }
  33.    
  34.     free(lista);
  35. }