Si, infatti ho intrapreso una soluzione diversa (che si avvicina un pò di più)...
In pratica ho scritto una sola funzione che stampa un vettore e l'ho chiamata due volte, una per vf e una per vm;
Ma il risultato seppur migliorato comunque non è quello sperato...
Ho modificato la stampa:
codice:
void stampa_vett(vettore v, int riemp){
     int i;
     if(riemp==0)
        cout<<"\nIl vettore "<<v<<" non contiene elementi...\n";

     cout<<"\nGli elementi del vettore "<<v<<" sono: \n";
     for(i=0;i<riemp;i++)
     cout<<v[i]<<' ';
     
}
Quindi ora nel main ci saranno due chiamate ovvero:
codice:
#include <cstdlib>
#include <iostream>
#include "lib.h"
using namespace std;

int main()
{
    info vs;
    int r_vs;
    vettore vm;
    vettore vf;
    int r_vm;
    int r_vf;
    
    cout<<"Inserire il numero di elementi da caratterizzare: ";
    cin>>r_vs;
    leggi_struct(vs, r_vs);
    stampa_struct(vs, r_vs);
    
    separa(vs, r_vs, vm, vf, r_vm, r_vf);
        stampa_vett(vf, r_vf);
    stampa_vett(vm, r_vm);
    system("PAUSE");
    return EXIT_SUCCESS;
}
Mentre in output ho qualcosa di questo tipo:
codice:
Inserire il numero di elementi da caratterizzare: 3
Inserire l'eta' : 45
Ora inserire il sesso: f
Inserire l'eta' : 32
Ora inserire il sesso: m
Inserire l'eta' : 12
Ora inserire il sesso: f

Stampa della struttura inserita:
45 f

32 m

12 f


Gli elementi del vettore 0x22fe20 sono:
32 2
Gli elementi del vettore 0x22fe70 sono:
32 Premere un tasto per continuare . . .