error: invalid conversion from `void (*)(char*)' to `void*'



  • hi,

    ich bekomme den fehler

    error: invalid conversion from `void ()(char)' to `void*'

    wenn ich versuche, die funktion set_item_userptr aus der ncurses zu benutzen. folgender code:

    set_item_userptr(my_items[i], func);
    
    void func(char *name)
    {       
      sleep(1);
    }
    

    Ich habe aber in mehreren beispielen gesehen, das es so funktionieren soll 😞
    Ich übersetze das Programm mit -lncurses und -lmenü auf Debian mit dem gcc 3.3.
    any hints??
    mfg
    mauser



  • Das scheint ein historischer Designfehler in ncurses zu sein. Wahrscheinlich ging es früher mal, dass Funktionspointer in void* konvertiert werden -- das ist aber heutzutage nicht mehr erlaubt. Naja, dann musst du eben selbst Hand anlegen und func selbst nach void* casten.



  • hi,

    danke für deine hilfe, mit dem entsprechenden cast geht es wunderbar.hatte ganz vergessen das man funktionen bzw. ihre rückgabewerte auch casten kann.
    mfg
    Mauser


Anmelden zum Antworten