Salve a tutti,
sto convertendo un programma da C++ in C per l'addestramento di reti neurali.
Ho convertito le classi in struct, usato puntatori etc.

Tuttavia ho alcune funzioni che richiamano altre funzioni e qui mi nasce un problema...
Definisco la struttura:

codice:
typedef struct
    {
     float *prob;
     int m_iCityCount;
     int *AllowedCity;
     int *tabu;
     float m_dLength;
     float m_dShortest;
    }ant;
Funzione che ne chiama una seconda:

codice:
void Clear(ant* a)
    {
     a->m_dLength=0;
     int i;
     for(i=0;i<iCityCount;i++)
     {
      a->prob[i]=0;
      a->AllowedCity[i]=1;
     }
     i=(*a).tabu[iCityCount-1];
     a->m_iCityCount=0;
     addcity(&a, i);   //2
    }
che è:

codice:
void addcity(ant* a,int city)
    {
     a->tabu[(*a).m_iCityCount]=city;
     a->m_iCityCount=(*a).m_iCityCount+1;
     a->AllowedCity[city]=0;
    }
Questo è solo un esempio...ho altri casi simili. Comunque mi restituisce questi errori:

warning: conflicting types for 'addcity' [enabled by default]

//2:
warning: passing argument 1 of 'addcity' from incompatible pointer type [enabled by default]|

note: expected 'struct ant *' but argument is of type 'struct ant **'

Qualcuno mi può aiutare per risolvere questi errori? Premetto che C non lo tocco da anni quindi magari mi sfugge qualcosa di banale...

- Francesco