Autor Tema: Lectura con memoria dinámica en C

0 Usuarios y 1 Visitante están viendo este tema.

14 Enero, 2014, 03:12 am
Leído 1230 veces

Carolina Herschel

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 383
  • Karma: +0/-0
  • Sexo: Femenino
Hola

Me piden hacer una función en C que lea de un archivo un vector de números reales cuya dimensión es desconocida.
En el main estoy declarando el vector como:

double *x;
x = (double *)malloc(sizeof(double));

Luego, llamo a la función de lectura cuyos parámetros son el nombre del archivo y el vector, y dentro de esa función tengo algo como esto:

while(fscanf(fp,"%lf",x + ix++) != EOF) x = (double *)mrealloc(x,(ix + 1)*sizeof(double));

sin embargo, cuando voy a imprimir el vector afuera en el main, me muestra otros números, como si no guardara bien los datos. Pero dentro de la función de lectura, si imprimo, sí sale bien. ¿Cómo puedo solucionarlo? Gracias.
"Math is like love -- a simple idea but it can get complicated."