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