Спасибо за ваше решение, однако его также 56, когда я компилирую, передавая аргумент через cmd в окне 10 x64. Это 54, когда он работает на ubuntu и codeblock в окне с передачей аргумента в коде. Мое решение:
typedef struct { // Total: 54 bytes
char _type[2]; // Magic identifier: 0x4d42
char _size[4]; // File size in bytes
char _reserved1[2]; // Not used
char _reserved2[2]; // Not used
char _offset[4]; // Offset to image data in bytes from beginning of file (54 bytes)
char _dib_header_size[4]; // DIB Header size in bytes (40 bytes)
char _width[4]; // Width of the image
char _height[4]; // Height of image
char _planes[2]; // Number of color planes
char _bpp[2]; // Bits per pixel
char _compression[4]; // Compression type
char _image_size[4]; // Image size in bytes
char _x_resolution_ppm[4]; // Pixels per meter
char _y_resolution_ppm[4]; // Pixels per meter
char _num_colors[4]; // Number of colors
char _important_colors[4]; // Important colors
} header;
, и когда мне нужно принять значение, я сделаю:
*(int*) header._width
Я тестирую, и он работает с тремя вышеупомянутыми случаями.