La cabecera de la función de pthread_create
se ve así:¿Por qué start_routine para el retorno pthread_create void * y tomar void *
int pthread_create(pthread_t * thread,
const pthread_attr_t * attr,
void * (*start_routine)(void *),
void *arg);
lo comprendo todo, excepto que el puntero de función para start_routine
es de la forma void* (*fpointer) (void*)
lo que significa que toma en void pointer y devuelve void pointer.
El puntero de vacío que se necesita es solo una forma de pasar un argumento al start_routine, obtengo esa parte, pero no entiendo por qué la función devuelve un puntero de vacío? ¿Qué código incluso notará ese puntero vacío?