Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/10/2010, 13:36
Avatar de Munire
Munire
 
Fecha de Ingreso: julio-2010
Ubicación: en el ciberdespacio (España)
Mensajes: 150
Antigüedad: 14 años, 5 meses
Puntos: 4
ayuda con array dinamico

Hola, tengo un problema con el uso de arrays dinamicos. he conseguido corregir todos los errores que daba al compilar pero al ejecutarse el programa da este error:

Infracción de acceso al escribir en la ubicación 0xcdcdcdcd.

saludos y gracias


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. void introducir(int *, double numeros[]);
  6. void ordenar(int n, double numeros[]);
  7. void buscar();
  8.  
  9. int main()
  10. {
  11.     int n=0;
  12.     double *numeros = NULL;
  13.  
  14.     introducir(&n, numeros);
  15.     ordenar(n, numeros);
  16.     buscar();
  17.  
  18.     system("PAUSE");
  19.     return 0;
  20. }
  21.  
  22.  
  23.  
  24.  
  25. void introducir(int *pn, double *numeros)
  26. {
  27.     int i = 0;
  28.     int bites = 0, q=0;
  29.     printf("cantidad de numeros: ");
  30.     scanf("%d", pn);
  31.  
  32.     q = *pn;
  33.     bites = q * sizeof(int);
  34.  
  35.     if((numeros = (double *)malloc(bites)) == NULL)
  36.     {
  37.         printf("insuficiente espacio de memoria\n");
  38.         //return -1;
  39.     }
  40.    
  41.  
  42.     printf("\nIntroducir numeros: ");
  43.     for(i; i<*pn; i++)
  44.     {
  45.         scanf("%lf", numeros[i]);  // <=== el error lo da al llegar a aqui
  46.     }
  47.  
  48.     //imprimir datos para ver que estan bien:
  49.  
  50.     printf("\nIMPRIMIR DATOS:\n");
  51.     for(i=0; i<*pn; i++)
  52.     {
  53.         printf("\n=>%lf", numeros[i]);
  54.     }
  55. }
  56.  
  57. void ordenar(int n, double numeros[])
  58. {
  59.     int i = 0, j = 0;
  60.     double buffer = 0;
  61.     for(j;j<n-1;j++)
  62.     {
  63.         for(i=0; i<n; i++)
  64.         {
  65.             if(numeros[i] < numeros[i+1])
  66.             {
  67.                 numeros[i] = buffer;
  68.                 numeros[i] = numeros[i+1];
  69.                 numeros[i+1] = buffer;
  70.             }
  71.         }
  72.     }
  73.     printf("\nIMPRIMIR DATOS:\n");
  74.     for(i=0; i<n; i++)
  75.     {
  76.         printf("\n=>%lf", numeros[i]);
  77.     }
  78. }
  79.  
  80. void buscar()
  81. {
  82. }