我是网络编程新手,以下结构定义对我来说相当困惑。在这里,h_addr_list
被定义为字符串数组,但却用于存储in_addr
结构的数组。为什么它不是定义为struct in_addr **h_addr_list
而是char **h_addr_list
?
struct hostent
{
char *h_name; /* Official domain name of host */
char **h_aliases; /* Null-terminated array of domain names */
int h_addrtype; /* Host address type (AF_INET) */
int h_length; /* Length of an address, in bytes */
char **h_addr_list; /* Null-terminated array of in_addr structs */
};
struct in_addr
{
unsigned int s_addr; /* Network byte order (big-endian) */
};