Pregunta

Estoy tratando de usar la función gethostbyname, pero mi código:

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

    struct hostent *hp = gethostbyname(hostname);

    ...

}

Sigue regresando:

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

¿Alguien sabe lo que le pasa a mi sintaxis?

Gracias

¿Fue útil?

Solución

Te olvidaste #include <netdb.h>. Debido a que no incluyó este archivo, se está ejecutando con la regla "INT predeterminada". Básicamente, en C, si una función no tiene un prototipo, se supone que es:

int function_name(); En otras palabras, "Devuelve un int, toma un número desconocido de parámetros".

Declarar correctamente el prototipo de función (en este caso al incluir el encabezado) evitará esto.

Otros consejos

Creo que olvidaste incluir netdb.h Archivo de encabezado, para que el compilador no sepa nada sobre gethostbyname función y supone que devuelve entero. Luego se queja porque en ese caso habrías convertido entero en un puntero. Debe incluir un encabezado para proporcionar al compilador información de tipo correcto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top