Question

Je suis en train d'utiliser la fonction gethostbyname, mais mon code:

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

    struct hostent *hp = gethostbyname(hostname);

    ...

}

revient toujours:

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

Quelqu'un sait ce qui ne va pas avec ma syntaxe?

Merci

Était-ce utile?

La solution

Vous avez oublié de #include <netdb.h>. Parce que vous ne avez pas inclus ce fichier, vous exécutez dans la règle « int par défaut ». En fait, en C, si une fonction n'a pas de prototype, il est supposé être:

int function_name(); en d'autres termes "renvoie un int, prend nombre de paramètres inconnus".

déclarer correctement le prototype de fonction (dans ce cas, en incluant l'en-tête) va éviter cela.

Autres conseils

Je pense que vous avez oublié d'inclure le fichier d'en-tête de netdb.h, de sorte que le compilateur ne sait rien sur la fonction gethostbyname et suppose qu'il retourne entier. Ensuite, il plaintes parce que dans ce cas, vous auriez entier converti en un pointeur. Vous devez inclure un en-tête pour fournir compilateur avec des informations de type correct.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top