Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/04/2014, 23:52
Avatar de Drewermerc
Drewermerc
 
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 2 meses
Puntos: 5
Respuesta: Error en una lista dinamica simple

hola TriN.
bueno tu error es qu eno asignabas suficiente memoria por eso te salia ese error nosepor que la asignaste asi pero yo trato de asignar la memoria completa la que se piensa usar o tambien lo podias haber escho pidiendo que cantidadde memria se queria asignar alomejor asi ya no ibas a tener problemas y bueno espero que aun te sirva la respuesta aqui te dejo el codigo.


Código C:
Ver original
  1. #include <stdio.h>
  2.     #include <stdlib.h>
  3.      
  4.     int main()
  5.     {
  6.     int *lista, i, r, x;
  7.     lista = NULL;
  8.     i=0;
  9.     r = 0;
  10.     x = 0;
  11.     puts("Lista enlazada");
  12.      
  13.     lista = (int *) malloc( sizeof(int) );
  14.     if (lista == NULL)
  15.             printf("error al reservar memoria\n");
  16.      
  17.     printf("\nElemento %d de la lista enlazada",i+1);
  18.     scanf("%d",&lista[i]);
  19.    
  20.     system("clear");
  21.     puts("Desea agregar otro elemento");
  22.      scanf("%d",&r);
  23.  
  24.                 while(r == 1)
  25.                 {
  26.                     i++;
  27.                     r = 0;
  28.                     lista = (int*) realloc(lista,20 *sizeof(int));
  29.  
  30.             if (lista == NULL )
  31.                 printf("no se puedo asignar memoria");
  32.  
  33.                     printf("Elemento %d de la lista enlazada\n",i+1);
  34.                     scanf("%d",&lista[i]);
  35.  
  36.                     puts("Desea agregar otro elemento\n");
  37.                     scanf("%d",&r);
  38.                    
  39.                 }
  40.        
  41.         for(x=0;x<i+1;x++)
  42.         {
  43.         printf("%d\n",lista[x]);
  44.        
  45.         }
  46.        
  47.         free(lista);
  48.     return 0;
  49.     }
espero que te sirva saludos drewermerc.