Bueno, tienes varias maneras de hacerlo, una es que uses un arreglo estatico:
Código:
Hombres aHombres[20];
Muejeres aMujeres[20];
int nMujeres=0, nHombres=0;
// lees el nombre
if(esMujer(nombre))
{
aMujeres[nMujeres++].Nombre=nombre;
// Asignas las demas propiedades
}
else
{
aHombres[nHombres++].Nombre=nombre;
// Asignas las demas propiedades
}
Otra forma es usando la STL, en vez de usar un arreglo estatico usas la plantilla vector (me parece mucho mejor este metodo) y los agregas a medida que los vas leyendo.
Saludos