Ciao a tutti,

sto usando le librerie winsock2.lib ma ho un problema un pezzo di codice (funzionante) che pero non riesco bene a comprendere...
Codice PHP:
struct hostent *str// questa riga dichiara una struct di tipo hostent che è così fatta:

typedef struct hostent {
  
char FARh_name;
  
char FAR  FAR** h_aliases;
  
short h_addrtype;
  
short h_length;
  
char FAR  FAR** h_addr_list;// qua ci dovrebbe essre la lista di indirizzi IP dell host locale
hostent
l istruzione

Codice PHP:
str=gethostbyname(""); 
mette nella struttura puntata da str le informazioni relative all host locale... fin qui tutto bene....

ma cio che non mi capisco sta in questa istruzione:

Codice PHP:
printf("%s\n",inet_ntoa(*(struct in_addr *)*str->h_addr_list)); 
che stampa a video l indirizzo IP del PC locale.

La funzione inet_ntoa è definita così

Codice PHP:
charFAR inet_ntoa(
  
struct   in_addr in
); 
ora qualcuno mi spiega questa serie di puntamenti e casting??

Codice PHP:
 *(struct in_addr *)*str->h_addr_list 
Grazie!