Hola gente! Estoy trabajando con vectores de estructuras y no puedo terminar el pgm porque me da un error cuando llamo a una funcion que debe recibir como parametroun vector de estrucuturas. Trate de guiarme con el libro C con ejemplos pero sigo igual. No se que estoy haciendo mal, alguien me puede ayudar.
El pgm carga los datos de 20 empleados, y como resultado del mismo informa la cantidad de dinero que se le debe pagar a cada empleado.
 
#include<stdio.h>
#include<conio.h>
struct infoemp
{
 char nom[10]; /*Solicita el nombre*/
 char ape[10]; /*Solicita el apellido*/
 float valhs; /*Solicita el valor de la hora*/
 int cant; /*Solicita la cantidad de horas trabajadas*/
};
void cargoDatos(void);
void impDatos(struct infoemp emp[20]);
void main(void);
 
 
void cargoDatos(void)
{
 struct infoemp emp[20];
 int x=0;
 char resp;
 do{		
		clrscr();
		gotoxy(10,10);
		printf("Ingrese nombre del empleado: ");
		scanf("%s", emp[x].nom);
		gotoxy(10,11);
		printf("Ingrese apellido del empleado: ");
		scanf("%s", emp[x].ape);
		gotoxy(10,12);
		printf("Ingrese el valor de la hora: ");
		scanf("%f",&emp[x].valhs);
		gotoxy(10,13);
		printf("Ingrese cantidad de Hs trabajadas: ");
		scanf("%d",&emp[x].cant);
		x++;
		fflush(stdin);
    		gotoxy(10,14);
    		printf("Desea cargar otro (Si='s'/No='n')?: ");
    		scanf("%c", &resp);
   }while((resp=='s')&&(x<20));
 
}
void impDatos(struct infoemp emp[20])
{
 int x=0;
 float totDin=0, final=0;
 clrscr();
 gotoxy(2,2);
 for(x=0;x<20;x++)
   {
    totDin=emp[x].cant*emp[x].valhs;
    final+=totDin;
    printf("Nombre: %s\n", emp[x].nom);
    printf("Apellido: %s\n", emp[x].ape);
    printf("Ganacia $: %.2f\n", &totDin); 
   }
 printf("Total de dinero en Sueldos $: %.2f", &final);
 
}
void main()
{
 int opcion=0;
 clrscr();
 gotoxy(10,10);
 printf("Elija su opcion");
 gotoxy(10,11);
 printf("1) Cargar Datos");
 gotoxy(10,12);
 printf("2) Imprimir Datos");
 gotoxy(10,13);
 printf("3) Salir");
 gotoxy(10,14);
 do{
	printf("Opcion?: ");
  	scanf("%d",&opcion);
 }while((opcion<1)&&(opcion>3));
switch(opcion)
 {
  case (1):
	{
	 cargoDatos();
	 break;
	}
  case (2):
	{
	 impDatos(emp); /*aca me tira el error*/ 
break; }                                              /*undefined symbol 'emp'*/ 
  case (3):
	{
	 break;
	}
 }
 
}
 
En que me estoy equivocando??? 
  
 

