IM試圖瞭解如何連接互聯網槽插槽(但段錯誤的IM stuck.cause。)我不明白爲什麼這個代碼給段錯誤:是你能幫助我。inet_ntop功能段錯誤(可能是投誤差)
int main()
{
int status;
WSADATA wsa;
struct addrinfo hints ,*servinfo;
struct sockaddr_in *servSock;
char *ip4;
/**initialization*/
WSAStartup(MAKEWORD(2 ,0) ,&wsa);
memset((void *)&hints ,NULL ,sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE;
ip4 = (char *)malloc(sizeof(char)*INET_ADDRSTRLEN);
/**End of initialization*/
status = getaddrinfo("www.google.com",DEF_PORT,&hints,&servinfo);
checkErr("serv info" ,status ,0 ,equal ,gai_strerror);
servSock = (struct sockaddr_in *)(servinfo->ai_addr);
status = inet_ntop(AF_INET ,&(servSock->sin_addr) ,ip4,INET_ADDRSTRLEN);
checkErr("ntop" ,status ,NULL ,nEqual ,gai_strerror);
printf("IPv4 : %s",ip4);
free(ip4);
WSACleanup();
}
代碼爆炸在inet_ntop線(IDK爲什麼,導致IM小白^^)
[完整版本的代碼](http://pastebin.com/A8Ts4Exv)如果你想調試它:) –
[image](http://i.imgur.com/8ofQYly.png)我得到這個手錶結果當我使用'&((結構SOCKADDR_IN *)(servinfo-> ai_addr)) - > sin_addr' [圖像](http://i.imgur.com/ZGRDfDd.png)我得到這個觀測結果時我使用'&(servSock-> sin_addr)' &我從這些結果中瞭解到當我使用'servSock =(struct sockaddr_in *)(servinfo-> ai_addr);'代碼 –