Ahi arregle la funcion "mostrarArchivo", que funciona..
Lo que si, tengo error de que si le paso una lista con 2 elementos, en el archivo al hacer..
Cita: int numeroRegistros = ftell(f)/sizeof(Amigo);
Devuelve 5.. Cosa que deberia devolver 2, ya que agregaria 2 elementos.
No se cual es el error, puede que este reservando mal el lugar para el archivo..
Entonces al mostrar, me muestra los 2 correctos, pero despues lo demas me muestra basura..
Cita: int mostrarArchivo(FILE *f){
Amigo aux;
int numReg = ftell(f)/sizeof(Amigo),i;
for(i=0;i<numReg;i++){
fseek (f, i*sizeof(Amigo), SEEK_SET);
fread (&aux,sizeof(Amigo),1, f);
mostrarAmigo(aux);
}
}
Abajo dejo las demas funciones
Cita: int guardarArchivo(FILE *f,Lista *l){
Persona *aux=l->inicio;
Amigo a;
int i=1;
while(aux){
a=aux->dato;
fwrite((Amigo *)&a,i*sizeof(Amigo),i,f);
aux=aux->sig;
i++;
}
return 0;
}