giusto una correzione alla svista:

int * v = malloc ( sizeof(int) * n );


inoltre l'istruzione

scanf("%d",&n);

deve essere posta prima della malloc,