ai_canonname은 리졸브된 호스트명의 대표 이름(canonical name, CNAME)을 담는다. 애초 호출 시 hints로 ai_flags 필드에 AI_CANONNAME 플래그를 설정하여 된 경우에만 사용된다.
ai_addr은 해당 주소 패밀리의 sockaddr을 담고 있다. 이 주소는 getaddrinfo() 호출 시 지정한 hostname과 servname, 즉 호스트명과 포트 조합이 가리키는 주소를 나타낸다.
ai_next는 연결 리스트상 다음 addrinfo를 가리킨다. 하나의 도메인 네임이 여러 IPv4 및 IPv6 주소를 가리킬 수 있으므로 원하는 sockaddr을 찾을 때까지 연결 리스트를 순회해야 한다. 이렇게 하는 대신 hint로 ai_family를 지정해 주면 원하는 주소 패밀리의 것들만 받을 수 있다. 마지막 항목의 ai_next는 nullptr가 되어 마지막임을 나타낸다.
getaddrinfo()가 addrinfo 구조체를 반환할 때, 자체적으로 메모리를 할당해 주므로, 반환된 연결 리스트의 내용을 다 꺼내 쓴 다음엔 호출자가 직접 freeaddrinfo()를 호출해 메모리를 해제해 주어야 한다.
void freeaddrinfo(addrinfo* ai);
이때 반드시 ai에 getaddrinfo()에서 받은 맨 첫 번째 addrinfo를 넘겨주어야 한다. 그래야 함수 내부에서 스스로 연결 리스트를 순회하며 모든 addrinfo 노드와 그에 관련된 버퍼를 해제해 준다.