Sauf que pour moi void *(*start_rtn)(void) ça signifie que l'argument attendu est un pointeur sur une fonction sans argument qui retourne un pointeur sur fonction ne prenant pas d'argument et retournant un pointeur générique
Non, start_rtn est un pointeur sur une fonction sans argument et retournant un pointeur sur void.
Ceci étant, le prototype de pthread_create() est :
int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void *), void *restrict arg);
Avec donc start_rtn comme un pointeur sur une fonction avec un pointeur sur void comme argument et retournant un pointeur sur void.
Partager