Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    [C] Implementazione struttura dati Heap

    Salve ragazzi ho il seguente typedef:

    codice:
    typedef struct heap
    {
        int Dim;
        int MaxDim;
        void *Link;
        int Size;
    } HEAP;
    Ed ho la seguente function:
    codice:
    void Swap(void *a, void *b, int dim)
    {
    	void *temp = malloc(dim);
    
        memcpy(temp, a, dim);
        memcpy(a, b, dim);
        memcpy(b, temp, dim);
        free(temp);
    }
    Il compilatore, quando vado a compilare, mi dà il seguente errore:
    codice:
     incompatible type for argument 2 of `Swap'
    codice:
    void Heapfy(HEAP *Heap, int i, COMPARE Compare)
    {
         int l;
         int r;
         int max;
         
         l = Sinistro(i);
         r = Destro(i);
         
         if ( l <= Heap->Dim && Compare( ((Heap->Link)+l*Heap->Size),((Heap->Link)+i*Heap->Size)) > 0 )
            max = l;
         else
            max = i;
            
         if ( r <= Heap->Dim && Compare( ((Heap->Link)+r*Heap->Size), ((Heap->Link)+max*Heap->Size)) > 0 )
            max = r;
         
         if ( max != i )
         {
              Swap( Heap, Heap[max], 4 );
              Heapfy(Heap, max, Compare);
         }
    }
    L'errore è dato dalla riga in grassetto.
    Con i sogni possiamo conoscere il futuro...

  2. #2
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Forse ho capito, io passo come parametro alla funzione swap, Heap che è di tipo HEAP e non void, quindi devo passare Heap->Link.

    Ecco così non mi dà più errore:

    codice:
    Swap( Heap->Link, (Heap->Link)+max, Heap->Size );
    Con i sogni possiamo conoscere il futuro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.