2011-12-06 2 views
0
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

호스트를 인쇄하여 기능에 전달한 후 결과를 확인하십시오. – sidyll

답변

3

배열을 직접 전달해야합니다. const 포인터를 취하는 함수는 그 함수에 대해 인수가 상수 포인터가된다는 것을 의미합니다. 호출이 이루어진 시점에서 데이터가 const인지 또는 const가 아닌지에 대해서는 아무 말도하지 않습니다.

즉, 게시 된 코드가 충돌해야한다는 것이 이상하게 들립니다.

fgets()은 입력에서 줄 바꿈/줄 바꿈 문자를 유지하므로 아마도 gethostbyname()이 볼 것으로 예상되지는 않습니다.

관련 문제