I'm trying to understand how pthread_create and pthread_join works. I thought that the third argument of pthread_create only allows functions with one argument of void*. I compiled the code below with gcc and it worked just fine. But why?
void *foo() {
return 0;
}
int main() {
pthread_t thread_id;
int par = 5;
pthread_create(&thread_id, NULL, foo, &par);
pthread_join(thread_id, NULL);
return 0;
}