Array von Funktionszeigern



  • Hallo!
    Ich scheitere gerade daran, ein Array aus Funktionszeigern zu schaffen. So schwer kann es ja theoretisch nicht sein:

    Den Funktionspointer habe ich so deklariert:

    void (*func)(struct REGISTERS *r);
    

    Nun will ich aber daraus ein Array mit 16 Elementen schaffen:

    void (*func)(struct REGISTERS *r)[16] =
    {
    	0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0
    };
    

    Hier spielt der GCC aber nicht mehr mit und erzählt mir folgendes:

    Fehler: Deklaration von »irq_routines« als Feld von voids

    Ich habe absolut keine Ahnung, was ich jetzt tun soll. Kann mir da jemand helfen?
    Besten Dank!



  • Du willst ja keinen Zeiger auf ein Array von 16 Funktionen (was garnicht geht), sondern ein Array von 16 Zeigern auf Funktionen. BTW: Einfacher geht's mit typedefs.

    void (*func[16])(struct REGISTERS *r); // oder besser
    
    typedef void (*function)(struct REGISTERS*);
    function func[16];
    

Anmelden zum Antworten