1

fptr is a function pointer, and even if I pass fptr instead of threadFunc in pthread_create() it still works.

Shouldn't it be *fptr that must be passed instead of just fptr? How is it working with fptr instead of *fptr?

 #include <iostream>
 #include <thread>
 using namespace std;
 void* threadFunc(void *arg){
   cout<<"Thread FUnction\n";
   pthread_exit(NULL);
 }

 int main(){
   pthread_t my_thread;
   void* (*fptr)(void*);
   fptr=threadFunc;
   int ret = pthread_create(&my_thread,NULL,fptr,NULL);

   if(ret){
     printf("Error creating thread\n" );
     exit(EXIT_FAILURE);
   }
   pthread_exit(NULL);

 }
dave
  • 4,812
  • 4
  • 25
  • 38
Anirban
  • 197
  • 3
  • 11

0 Answers0