Ciao a tutti,
devo fare un cast tra un void * e una struct e non so come si fa!!!!

Ho questo questa struttura:
codice:
typedef struct parametri_ascolto {
   int fdserver;
   int *thread_id;
}param;
allocata,dichiarata e inizializzata così:
codice:
param *arg_ascolto = (param *)malloc(sizeof(param));
   
   arg_ascolto->fdserver = fdg;
   arg_ascolto->thread_id = (int *)tid; //---->>> verficare
usata così:
codice:
   
   pthread_t tid_ascolto;
   if( ( err = pthread_create(&tid_ascolto,NULL,ascolto,&arg_ascolto) ) != 0 )
   {  printf("errore %s\n",strerror(err));   exit(1);  }
I cast li devo fare nella funzione ascolto e sono questi:
codice:
void *ascolto(void *x)
{
   struct parametri_ascolto arg = (struct parametri_ascolto )&x; //---->>> non so come si fa
   int fdg = arg.fdserver;
   pthread_t *tid = arg.thread_id;   //--->> da verificare
...
...
Scuasate la scocciatura e grazie dell'aiuto