Buongiorno a tutti,

premettendo il mio non essere molto esperto, vi porgo questa domanda:
semplificando un programma più complesso ho buttato giù questo codice, con il quale tramite dei valori inseriti da tastiera li salvo in un vettore a[], i quali verranno poi copiati in un vettore c[] e in fine stampati a video (vettore c[]) tramite funzioni, il problema è che non mi assegna i valori che inserisco da tastiera al vettore a[] e di conseguenza al vettore c[], ergo immagino già che la logica che ho usato per passare i valori inseriti non sia corretta, qualcuno potrebbe darmi una dritta per piacere?

codice:
#define lung 5
int main()
{


int a[lung];
int c[lung];


ricevi(a, lung);
stampa(a, lung);
copiaestampa(c, a, lung);


}


int stampa(int *ap, int dim)
{
    int i;
    for(i=0; i<dim; i++)
    {
        printf("valori di a: %d", ap[i]);
    }
    return stampa;
}


int copiaestampa(int *cp, int *ap, int dim)
{
    int i,y;


    for(i=0; i<dim; i++)
    {
       cp[i] = ap[i];
    }


    for(y=0; y<dim; y++)
    {
       printf("valori di c: %d", cp[y]);
    }
   // return copiaestampa;
}


int ricevi(int *ap, int dim)
{
    int i;
    for(i=0; i<dim; i++)
    {
        printf("dammi valori: ");
        scanf("%p", &ap);
    }
}