
인터넷 주소(ip 주소)를 문자열로 변환하는 inet_ntop 함수를 사용했을 때 오류가 발생하는 이유는, 함수의 마지막 인자로 NULL을 전달했기 때문입니다.
inet_ntop 함수의 마지막 인자로 NULL을 전달하면, 함수는 문자열의 크기를 반환하지만, 실제로 문자열을 생성하지 않습니다.
따라서, inet_ntop 함수를 사용했을 때 오류가 발생하는 경우, 함수의 마지막 인자로 문자열의 크기를 지정한 변수의 주소를 전달해야 합니다.
예를 들어, inet_ntop 함수를 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
c
#include
int main() {
struct in_addr ip;
inet_pton(AF_INET, "192.168.0.1", &ip);
char ip_str[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &ip, ip_str, INET_ADDRSTRLEN);
printf("%sn", ip_str);
return 0;
}
이 코드에서는 inet_ntop 함수의 마지막 인자로 INET_ADDRSTRLEN을 전달하여, 문자열의 크기를 지정한 변수의 주소를 전달합니다.
INET_ADDRSTRLEN은 inet_ntop 함수가 생성할 문자열의 최대 크기를 나타내는 상수입니다.
따라서, inet_ntop 함수를 사용했을 때 오류가 발생하는 경우, 함수의 마지막 인자로 INET_ADDRSTRLEN을 전달하여, 문자열의 크기를 지정한 변수의 주소를 전달해야 합니다.
2025-06-13 06:41