Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Tamaño de una estructura

Estas en el tema de Tamaño de una estructura en el foro de C/C++ en Foros del Web. Hola a todos tengo el siguiente codigo, y me dice que el tamaño de la estructura es de 52 bytes, lo que no se es ...
  #1 (permalink)  
Antiguo 03/07/2014, 19:04
 
Fecha de Ingreso: febrero-2014
Mensajes: 107
Antigüedad: 10 años, 1 mes
Puntos: 0
Tamaño de una estructura

Hola a todos tengo el siguiente codigo, y me dice que el tamaño de la estructura es de 52 bytes, lo que no se es porque ese numero si la estructura deberia tener un tamaño de 50 bytes si son:

int = 4bytes
int = 4bytes
char[30]= 30bytes
char[12]= 12bytes
_________________
tamaño = 50bytes

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main (){
  5.  
  6.     struct datos{
  7.         int cod;
  8.         int val;
  9.         char nom[30];
  10.         char tel[12];
  11.  
  12.     };
  13.  
  14.     datos dat;
  15.     cout<<sizeof(struct datos);
  16. }
  #2 (permalink)  
Antiguo 03/07/2014, 19:30
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Tamaño de una estructura

Las estructuras se rellenas con bytes para que no haya problemas de alineamiento.
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 05/07/2014, 06:02
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Tamaño de una estructura

nom y tel serian "strings" y el ultimo byte en los "strings" es un "\0" que cuenta tambien
__________________
Salu2!
  #4 (permalink)  
Antiguo 05/07/2014, 06:08
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Tamaño de una estructura

No. El 0 final es funcional. No se usa para medir cuanta memoria se usa en un array. El relleno de bytes es a las structs y tiene que ver con alineamiento.
__________________
Visita mi perfil en LinkedIn
  #5 (permalink)  
Antiguo 05/07/2014, 07:41
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Tamaño de una estructura

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
No. El 0 final es funcional. No se usa para medir cuanta memoria se usa en un array. El relleno de bytes es a las structs y tiene que ver con alineamiento.
Amigo @CalgaryCorpus : gracias...... ya encontre una referencia de lo que comenta y no tenia idea fuera para mejorar la eficiencia.

100% acertado
__________________
Salu2!
  #6 (permalink)  
Antiguo 05/07/2014, 09:10
Avatar de leosansan  
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 11 años, 10 meses
Puntos: 49
Respuesta: Tamaño de una estructura

Como ya te comentó CalgaryCorpus es una forma de evitar problemas de alineamiento. Más información en , como ejemplos, Data structure alignment y Stack Overflow

¡¡¡Saluditos!!!


Última edición por leosansan; 05/07/2014 a las 09:21
  #7 (permalink)  
Antiguo 05/07/2014, 10:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Tamaño de una estructura

@leosansan : muchas gracias por los enlaces..... revisando(..)
__________________
Salu2!
  #8 (permalink)  
Antiguo 05/07/2014, 18:54
 
Fecha de Ingreso: febrero-2014
Mensajes: 107
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Tamaño de una estructura

Gracias a todos , resolvieron las dudas. Gracias

Etiquetas: struct, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:56.