Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/01/2008, 15:15
Avatar de _Lucifer_
_Lucifer_
 
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años
Puntos: 28
Re: problema leyendo un archivo con estructuras

Bueno, tienes un par de errores de lógica por lo que veo a primera vista.
Código:
...
void abrir() {

    FILE * fp;
    fp = fopen("gastos.dts", "rb");
    _gasto *aux;
    aux = (_gasto *) malloc(sizeof(_gasto));

    while (!feof(fp)) {
        fread(aux, sizeof(_gasto), 1, fp);
        printf(" | %3d | %10s | %30s | %2i/%2i/%4i | %5i |\n",
                aux->i, aux->nombre, aux->concepto, aux->fecha.dia,
                aux->fecha.mes, aux->fecha.ano, aux->importe);
        aux = aux->sigGasto;
    }

    fclose (fp) ;
}
...
En la linea que te marqué, ¿quién es siguiente? Se que es el siguiente elemento de la lista, pero no has reservado memoria para el, así que quien sabe donde te esté guardando los datos, deberías reservar memoria para el siguiente nodo antes de usarlo.

Otra cosa es que no estás liberando la memoria que usar al final de tu programa, eso crea lo que se llama memory leaks, asegurate de hacer un free de todo lo que reservaste al final de tu programa o de cada función dependiendo de lo que hiciste.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba: