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

279
Vistas
¿Cómo es que se usa una variable antes de declararla?

Estoy confundido acerca de una función dictCreate() en el archivo dict.c de la implementación de redis . Voy a pegar el código aquí:

 /* Create a new hash table * T = O(1) */ dict *dictCreate(dictType *type, void *privDataPtr) { dict *d = zmalloc(sizeof(*d)); _dictInit(d, type, privDataPtr); return d; }

la variable d se usa en zmalloc(sizeof(*d)) , pero teóricamente existirá cuando se ejecute esta línea. Entonces, mi pregunta es ¿cómo es posible usar la variable d antes de que se declare?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

sizeof no es una función, es un operador. Se ejecuta (evalúa, para ser exactos) en el momento de la compilación, por lo que el alcance o la duración en la que está pensando d , no se aplica aquí. Todo lo que necesita saber es el tipo de *d y eso se conoce en tiempo de compilación. Suficiente.

over 4 years ago · Santiago Trujillo Denunciar

0

La declaración

 dict *d = zmalloc(sizeof(*d));

es equivalente a

 dict *d; d = zmalloc(sizeof(*d));

Entonces, dict *d declara d como un puntero al tipo de dictado y = dict = zmalloc(sizeof(*d)); utilizado para la inicialización. dict *d = zmalloc(sizeof(*d)); declara d como dict * y luego lo inicializa en una sola línea.

over 4 years ago · Santiago Trujillo Denunciar

0

Su suposición es incorrecta, el objeto existe a partir del signo = que inicia la inicialización. Por ejemplo, en un inicializador, puede usar la dirección del objeto que está inicializando.

Aquí, además, no se necesita acceso al objeto en sí, sizeof solo usa el tipo en este caso.

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