array von funktionspointern und NULL-pointer



  • hier is folgender ausschnitt aus einem Programm: ((es geht mir hauptsächlich um den NULL pointer

    //in meinem "funktionierenden" code hab ich hier eine
    //nullfunktion(){}; //als NULL-pointer deklariert
    
    void blabla()
    {
    printf("blabla");
    }
    
    int main()
    {
    void (*funktionen[10])();
    
    //meine default initialisierung
    for(int i=0; i<10; i++)
    {
    (*funktionen[i])=NULL  //oder eben "nullfunktion" statt "NULL"
    }
    
    //jetz weiss ich mitten im progrmm dyniamisch   ein paar funktionen werte zu:
    (*funktionen[0])=blabla;
    (*funktionen[1])=blabla;
    (*funktionen[2])=blabla;
    
    /*so... und jetzt will ich alle Funktionen aufrufen, bis das "NUll-Element" drankommt:*/
    
    int j=0;
    while((*funktionen[j])!=NULL)  //oder ((*funktionen[j])!=nullfunktion) 
    {
    (*funktionen[j])();
    j++;
    }
    
    return 0;
    }
    

    gibt es da irgendwas, was wie dieser Null pointer geht? wenn ich das Programm so ausführe wie jetzt, kompiliert es zwar, stürzt dann aber wegen speicherproblemen zusammen, deswegen hab ich z.Zt. statt dem NULL-pointer eine eigene "nullfunktion(){};" deklariert, die ich dann stattdessen verwende, aber es muss doch bestimmt auch sowas wie einen nulpointer dafür geben oder?



  • warum (*funktionen[i])=NULL und nicht funktionen[i]=NULL? und auch im vergleich.

    void blabla()
    {
       printf("blabla");
    }
    typedef void vf();//void fucktion
    typedef vf* pvf;//ptr to void function
    int main()
    {
       pvf funktionen[10];
    
       for(int i=0; i<10; i++)
       {
          funktionen[i]=NULL;
       }
    
       funktionen[0]=blabla;
       funktionen[1]=blabla;
       funktionen[2]=blabla;
    
       int j=0;
       while(funktionen[j]!=NULL)
      {
        (*funktionen[j])();
        j++;
      }
      return 0;
    }
    


  • volkard schrieb:

    typedef void vf();//void fucktion
    

    😃 wo bist du den mit deinen gedanken 😃



  • hmm. shit irgendwie sieht das jetz so einfach aus 😉 sollte villeicht mal 'n bishen mehr mit typedef hantieren 😉


Anmelden zum Antworten