Salve, devo allocare dinamicamente un array di numeri ed acquisirne gli elementi. Non riesco a capire dove sia l'errore. In fase di compilazione ottengo un "Warning: 'a' is used uninitialized" ed all'esecuzione del programma ottengo un Segmentation Fault.

codice:
void leggi_array(int *, int *);

int main(void)
{
int *a, n;

leggi_array(a, &n);

return(0);
}


void leggi_array(int *a, int *n);
{
int i;

do
{
  printf("Numero di elementi dell'array: ");
  scanf("%d", n);
}
while (*n <= 0);

a = (int *)calloc(*n, sizeof(int));

for (i = 0; (i < *n); i++)
{
  printf("Inserire elemento %d^: ", i + 1);
  scanf("%d", &a[i]);
}
}