Nel ciclo for se voglio inserire più di un elemento, il primo mi fa mettere i campi prior e dato senza alcun problema, ma dals econdo in poi mi va in segmentation fault nel punto in cui fa la malloc per elem ( prima istruzione del for ). Come mai ?

codice:
struct elemento{
	int prior;
	int dato;
};
typedef struct elemento elem;

struct infor{
	int size;
	struct elemento *first;
};
typedef struct infor heap;

int main(){
	elem **vet;
	heap *A;
	int n,i;
	printf("\n\n Digita il numero di elementi che vuoi inserire :  \n\n");
	scanf("%d",&n);
	vet=(elem **)malloc(n*sizeof(elem *));
	for(i=0;i<n;i++){
		 vet[i]=(elem *)malloc(sizeof(elem));
		 printf("\n\n Digita il valore della %d priorita' :  ", i);
		 scanf("%d",vet[i]->prior);
		 getchar();
		 printf("\n\n Digita il valore del %d dato :  ", i);
		 scanf("%d",vet[i]->dato);
		 getchar();
	}
	printf("\n\n La prima priorita' vale : %d :  ",vet[0]->prior);
	system("PAUSE");	
	
return 0;
}