Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [C] Funzioni su struct

  1. #1

    [C] Funzioni su struct

    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

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh, C o C++ per queste cose non differiscono ...

    La addcity si attende un puntatore ad ant e nella prima hai già un puntatore ad ant ... quindi basta

    addcity(a, i);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.