質問

関数gethostbynameを使用しようとしていますが、私のコード:

int handleTCP(char *hostname, char* portNo){

    struct hostent *hp = gethostbyname(hostname);

    ...

}

戻り続けます:

21: warning: initialization makes pointer from integer without a cast

私の構文の何が問題なのか知っている人はいますか?

ありがとう

役に立ちましたか?

解決

あなたは忘れました #include <netdb.h>. 。このファイルを含めなかったため、「default int」ルールにぶつかります。基本的に、cでは、関数にプロトタイプがない場合、それは次のと想定されています。

int function_name(); 言い換えれば、「INTを返す、不明な数のパラメーターを取得します」。

関数プロトタイプ(この場合はヘッダーを含めることで)を適切に宣言すると、これは回避されます。

他のヒント

含めるのを忘れたと思います netdb.h ヘッダーファイル、コンパイラが何も知らないように gethostbyname 機能し、整数を返すと仮定します。その場合、整数をポインターに変換したため、苦情があります。コンパイラに正しいタイプ情報を提供するヘッダーを含める必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top