Aunque no me da error al compilar el programa no se ejecuta correctamente. El problema creo que esta al pasar una estructura o un archivo por referencia.
La estructura es: 
Código:
 struct estructura
{
    char dato1[10];
    char dato2[20];
    int dato3;
}vector_estructura[20];
  La invocación a la función desde main: 
Código:
 int n=0;
    struct estructura vector_estructura[20];
    FILE *fichero;
funcion(vector_estructura,&n,fichero);
  Y la función: 
Código:
 void funcion (struct estructura *vector_estructura, int *n, FILE *fichero)
{
    fe=fopen("archivo.dat","w");
    printf("Escribe el dato1  del empleado: ");
    scanf("%s",*vector_estructura[*n].dato1);
    printf("Escribe el dato2bre del empleado");
    scanf("%s",*vector_estructura[*n].dato2);
    printf("Escribe el dato2bre del empleado");
    scanf("%d",vector_estructura[*n].dato3);
    fprintf(fe,"%s \n%s \n%d",vector_estructura[*n].dato1,vector_estructura[*n].dato2,vector_estructura[*n].dato3);
    fclose(fe);
    *n++;
}
  Alguien me sabría decir donde está el error?