Ciao Oregon, grazie mille per avermi risposto ancora una volta e, ancora una volta, con una certa celerità

Ho provato a seguire il tuo consiglio:
codice:
//ESTRAZIONE DEL MASSIMO IN UNA CODA A PRIORITA'
void extractMax(Heap *PH){
    int max;
    if(codaVuota(*PH)){
        printf("CODA VUOTA\n");
    }
    //ESTRAGGO IL MASSIMO, SAPPIAMO CHE IN UN MAXHEAP E' SEMPRE IL PRIMO ELEMENTO
    //N.B. NOI RAPPRESENTIAMO L'ALBERO PARTENDO DA 0 E NON DA 1
    max = PH->Info[0];
    PH->Info[0] = PH->Info[PH->N];
    //DECREMENTO IL VETTORE
    PH->N--;
    //APPLICO LA HEAPIFY SUL PRIMO ELEMENTO, SAPENDO CHE SI RIPERCUOTE SU TUTTI I SOTTOALBERI
    Heapify(PH, 0);
}
codice:
//APPLICA LO HEAPIFY ALL'ALBERO BINARIo
void Heapify(Heap *PPH, int i){
    int l, r, m, comodo = 0, largest;
    l = Left(i);
    r = Right(i);
    if(PPH->Info[i] > comodo){
       largest = i;
       comodo = PPH->Info[i];
    }
    if(PPH->Info[l] > comodo){
        largest = l;
        comodo  = PPH->Info[l];
    }
    if(PPH->Info[r] > comodo){
        largest = r;
        comodo = PPH->Info[r];
    }
    //SE IL VALORE DA SCAMBIARE NON E' IL NODO STESSO, SCAMBIO I VALORI
    if(largest != i){
        Swap(&PPH->Info[i], &PPH->Info[largest]);
        Heapify(PPH, largest);
    }


}
codice:
int main(){
    --CODE--

    ExtractMax(&H);
    return 0;
}
Ho provato, inoltre, a lanciare un debug, e vedo che si blocca nel momento in cui esegue lo swap nella funzione Heapify:

codice:
//FUNZIONE SWAP
void Swap(int *a, int *b){
    int temp;
    temp = *b;
    *b = *a;
    *a = temp;
}
in particolare nell'istruzione: *b = *a;