Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/04/2015, 15:48
lareto
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Posicionarse en el registro inicial después de una búsqueda [C]

Llego tarde, pero quería alertar que no es correcto usar el sizeof de una struct para lectura o escritura en archivos, porque el tamaño (el size) de una struct depende del "data alignment" del compilador (o de cómo se haya seteado por línea de comando), y de la posición relativa de los miembros dentro de la struct. Pongo un ejemplo:
Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. struct ejemplo1 {
  4.     char a;
  5.     int b;
  6.     double c;
  7. };
  8.  
  9. struct ejemplo2 {
  10.     double c;
  11.     char a;
  12.     int b;
  13. };
  14.  
  15. struct ejemplo3 {
  16.     int b;
  17.     double c;
  18.     char a;
  19. };
  20.  
  21. int main()
  22. {
  23.     std::cout << "sizof(char) + sizof(int) + sizeof(double) = "
  24.               << sizeof(char) + sizeof(int) + sizeof(double) << '\n';
  25.     std::cout << "sizeof(ejemplo1) = " << sizeof(ejemplo1) << '\n';
  26.     std::cout << "sizeof(ejemplo2) = " << sizeof(ejemplo2) << '\n';
  27.     std::cout << "sizeof(ejemplo3) = " << sizeof(ejemplo3) << '\n';
  28. }