char hostS[32];
printf("Enter host name: ");
bzero(hostS, 32);
fgets(hostS, 32, stdin);
const char* temp = hostS;
host = gethostbyname(temp);
所以这就是我遇到的问题。 gethostbyname()
折旧函数需要const char*
,但我希望它使用用户输入。我试过将字符串直接放入函数中并且它可以工作。 I.E. gethostbyname("localhost")
;。
现在,当我以这种方式进行用户输入时,我得到一个seg错误。
我怎样才能拿到蛋糕并吃掉它?
答案 0 :(得分:3)
你应该直接传递数组。采用const
指针的函数只意味着对于该函数,参数将是一个常量指针。它没有说明在调用时数据是否为常量const。
那就是说,发布的代码应该崩溃听起来很奇怪。
请注意fgets()
将保留输入中的换行符/换行符,这可能不是gethostbyname()
期望看到的。