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:
Funzione che ne chiama una seconda:codice:typedef struct { float *prob; int m_iCityCount; int *AllowedCity; int *tabu; float m_dLength; float m_dShortest; }ant;
che è: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 }
Questo è solo un esempio...ho altri casi simili. Comunque mi restituisce questi errori:codice:void addcity(ant* a,int city) { a->tabu[(*a).m_iCityCount]=city; a->m_iCityCount=(*a).m_iCityCount+1; a->AllowedCity[city]=0; }
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

Rispondi quotando