Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

349
Vistas
¿Necesito configurar una estructura C en Swift?

AFAIK, en Swift, llamar al inicializador predeterminado de clases/estructuras inicializará todo a 0 , nil . En C (programación de socket, por ejemplo), a veces se usa memset para establecer todo en 0 antes de usar la estructura. ¿Necesito usar memset en swift también o está bien como lo escribí?

(Por cierto, en este caso se usa memset porque las hints deben establecerse en 0, excepto por debajo de 2 parámetros. No 0 (basura, etc.) tendrá efectos secundarios en la res al llamar a getaddrinfo .

C:

 struct addrinfo hints, *res; int status; memset(&hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; status = getaddrinfo(NULL, MYPORT, &hints, &res);

Rápido:

 var res = UnsafeMutablePointer<addrinfo>() var hints = addrinfo() hints.ai_family = AF_UNSPEC hints.ai_socktype = SOCK_STREAM let status = getaddrinfo(nil, MYPORT, &hints, &res)
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

De las notas de la versión de Xcode 6.3 :

Las estructuras C importadas ahora tienen un inicializador predeterminado en Swift que inicializa todos los campos de la estructura a cero.

Lo que significa que

 var hints = addrinfo()

inicializa todos los campos de struct addrinfo a cero y no hay necesidad de llamar a memset() .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda