Ok, modificando la scanf con la & adesso funziona. So che la scanf vuole l'indirizzo della variabile, e non l'avevo messa perchè essendo quello un vettore dinamico, pensavo che con vet[posizione] prendevo l'indirizzo di quella determinata locazione.
La libreria stdio l'ho inclusa è che non l'ho copiata nel codice che ho postato.
Adesso avrei un'altro tipo di problema, dopo aver riempito il vettore, io metto l'indirizzo della prima cella del vettore come valore del puntatore A. E la prima printf di A mi stampa il valore, mentre se porovo ad accedere alla seconda cella del vettore sempre tramite il puntatore che ho in A mi stampa un indirizzo, come mai ?
codice:
#include<stdio.h>
#include<stdlib.h>
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 : ");
scanf("%d",&n);
vet=(elem **)malloc(n*sizeof(elem *));
for(i=0;i<n;i++){
*(vet+i)=(elem *)malloc(sizeof(elem));
printf("\n Digita il valore della %d priorita' : ", i);
scanf("%d",&vet[i]->prior);
getchar();
printf("\n Digita il valore del %d dato : ", i);
scanf("%d",&vet[i]->dato);
getchar();
}
A->first=vet[0];
printf("\n Priorita' di A[0] = %d ",(A->first)->prior);
printf("\n Priorita' di A[1] = %d ",((A->first+1)->prior));
system("PAUSE");
return 0;
}