Problema con estructuras(Registros) y archivos binarios

Kevin62
19 de Abril del 2010
Hola amigos, tengo un problema con C y la escritura/lectura de archivos binarios:

El problema consiste en crear una estructura con campos char, int, enum y float, crear un vector del tipo de dicha estructura y luego guardarla en un archivo binario para despues leerla.

El caso es que no me funciona, si alguien pudiera ayudarme a encontrar el error se lo agradeceria mucho.

Creacion de estructura:
////////////////////////////////////////////////////////////
typedef enum TSTADO{SOLTERO,CASADO,VIUDO}Tstado;

typedef struct TCLIENTE{
int edad ;
char nombre[51];
float saldo;
Tstado estado;
}TCliente;
/////////////////////////////////////////////////////////

Función de escritura:
//////////////////////////////////////////////////////////
// inicio: posicion del vecto inicial, fin: posicion final, clte: puntero del vector de la estructura TCliente
//////////////////////////////////////////////////////////
int escribir_bin(int inicio,int fin, TCliente *clte){
FILE *archivo;
int nex=0;
archivo=fopen(\"DatosBanco.dat\",\"wb\");
if (archivo!=NULL)
{
nex+=fwrite(clte,sizeof(TCliente),fin,archivo);
fclose(archivo);
return nex;
}
return -1;
}

Funcion de lectura:
//////////////////////////////////////////////////
//inicio: posicion inicial, fin: posicion final, vector: puntero de nuestra nuevo vector de datos, nmax: el numero de elementos del vector
///////////////////////////////////////////////
int leer_bin(int inicio, int fin, TCliente *vector, int *nmax){
FILE *archivo;
int nex=0;
int conta=0;
archivo=fopen(\"DatosBanco.dat\",\"rb\");
if (archivo!=NULL)
{
vector=(TCliente *) malloc(sizeof(TCliente)*(fin-inicio));
*nmax=fin-inicio;
nex+=fread(vector+conta,sizeof(TCliente),fin,archivo);
fclose(archivo);
return nex;
}
else
return -1;
}
/////////////////////////////////////////////
Llevo casi una semana dandole vueltas. Gracias por adelantado. Cualquier duda del código preguntad sin reparo.

Un saludo.

Kevin62
22 de Abril del 2010
Solucionado xD