Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Modifica di prototipi e dichiarazioni di funzioni
Forum - C/C++ - Modifica di prototipi e dichiarazioni di funzioni

Avatar
drewnik99 (Normal User)
Pro


Messaggi: 69
Iscritto: 28/03/2008

Segnala al moderatore
Postato alle 17:35
Giovedì, 01/12/2011
Questo è la struttura del programma:

Codice sorgente - presumibilmente C++

  1. void apri(void);
  2. void inserisci(void);
  3. void cerca(void);
  4. void aggiorna(void);
  5. void elimina(void);
  6. void visualizza(void);
  7. void salva(void);
  8.  
  9. struct comp
  10. {
  11.     int code;
  12.     char name[27];
  13.     char des[52];
  14.     int disp;
  15.     struct comp *n;
  16. };
  17.  
  18. struct comp *comps = 0;
  19.  
  20. void (*cmd[])(void) = {apri, inserisci, cerca, aggiorna, elimina, visualizza, salva};
  21.  
  22. int main()
  23. {
  24. int c;
  25.  
  26. for(;;)
  27. {
  28. scanf("%i", &c);
  29. (*cmd[c])();
  30. }
  31. }





Come devo modificare i prototipi e le dichiarazioni delle funzioni e il vettore di puntatori a funzione in modo da dichiarare comps nella funzione main e passarlo come parametro a tutte le altre funzioni?

Ultima modifica effettuata da drewnik99 il 01/12/2011 alle 17:45
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:44
Giovedì, 01/12/2011
Ad esempio

Codice sorgente - presumibilmente C++

  1. typedef struct comp
  2. {
  3.     int code;
  4.     char name[27];
  5.     char des[52];
  6.     int disp;
  7.     struct comp *n;
  8. } *pcomp;
  9.  
  10. void apri(pcomp pc);
  11. void inserisci(pcomp pc);
  12. void cerca(pcomp pc);
  13. void aggiorna(pcomp pc);
  14. void elimina(pcomp pc);
  15. void visualizza(pcomp pc);
  16. void salva(pcomp pc);
  17.  
  18. pcomp comps = NULL;
  19.  
  20. void (*cmd[])(pcomp pc) = {apri, inserisci, cerca, aggiorna, elimina, visualizza, salva};
  21.  
  22. int main()
  23. {
  24.         int c;
  25.  
  26.         for(;;)
  27.         {
  28.                 scanf("%i", &c);
  29.                
  30.                 (*cmd[c])(comps);
  31.         }
  32. }



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
drewnik99 (Normal User)
Pro


Messaggi: 69
Iscritto: 28/03/2008

Segnala al moderatore
Postato alle 21:19
Giovedì, 01/12/2011
Grazie mille.

PM Quote