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#include <stdio.h>
#include <stdlib.h>
void introducir(int *, double numeros[]);
void ordenar(int n, double numeros[]);
void buscar();
int main()
{
int n=0;
double *numeros = NULL;
introducir(&n, numeros);
ordenar(n, numeros);
buscar();
return 0;
}
void introducir(int *pn, double *numeros)
{
int i = 0;
int bites = 0, q=0;
printf("cantidad de numeros: ");
q = *pn;
bites = q * sizeof(int);
if((numeros
= (double *)malloc(bites
)) == NULL
) {
printf("insuficiente espacio de memoria\n"); //return -1;
}
printf("\nIntroducir numeros: "); for(i; i<*pn; i++)
{
scanf("%lf", numeros
[i
]); // <=== el error lo da al llegar a aqui }
//imprimir datos para ver que estan bien:
printf("\nIMPRIMIR DATOS:\n"); for(i=0; i<*pn; i++)
{
printf("\n=>%lf", numeros
[i
]); }
}
void ordenar(int n, double numeros[])
{
int i = 0, j = 0;
double buffer = 0;
for(j;j<n-1;j++)
{
for(i=0; i<n; i++)
{
if(numeros[i] < numeros[i+1])
{
numeros[i] = buffer;
numeros[i] = numeros[i+1];
numeros[i+1] = buffer;
}
}
}
printf("\nIMPRIMIR DATOS:\n"); for(i=0; i<n; i++)
{
printf("\n=>%lf", numeros
[i
]); }
}
void buscar()
{
}