Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

333
Visualizações
Comprender el tamaño de la estructura en el programa C

He definido en mi programa C una struct como se muestra a continuación:

 typedef struct { long time_of_arrival; // Number of minutes after the salon opening when the customer arrived char customer_name[21]; // Upto 20 characters long in all caps char stylist_name[21]; // Preferred stylist name, upto 20 characters long or NONE, in all caps long loyalty_points; // The loyalty points customer holds long requested_haircut_time; // The time corresponding to the haircut customer requested long loyalty_points_earned; // The loyalty points customer earned } customer;

Deseo crear una matriz de estructuras de tamaño según la cantidad de clientes proporcionada por el usuario a través del argumento de la línea de comando.

Para determinar la cantidad de memoria que ocuparía una sola instancia de dicha estructura en la memoria, ejecuté el siguiente fragmento de código:

 int main(int argc, char const *argv[]) { printf("%ld\n", sizeof(customer)); return 0; }

que imprimió el siguiente resultado:

 80

Sin embargo, en mi comprensión limitada, el tamaño debe ser de 74 bytes , es decir, 8 bytes para cada variable long y 21 x 2 bytes para las dos matrices de caracteres.

Luego de una depuración adicional (es decir, al crear una matriz independiente de 21 caracteres y verificar su tamaño con el operador sizeof , que se informó como 21 bytes ), llegué a la conclusión de que, por alguna razón, el tamaño de la matriz de caracteres debajo de la estructura se redondeaba a el múltiplo de 8 bytes.

Necesito ayuda para comprender qué fenómeno es responsable de este comportamiento y qué es lo que me falta aquí.

Nota: Estoy creando el programa C usando Apple clang versión 13.0.0 (clang-1300.0.29.3) que se ejecuta en macOS 12.0.1 (21A559) .

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda