Originariamente inviato da MacApp
Attenzione che gli int potrebbero essere (normalmente lo sono) a 4 byte NON a 2, verifica con sizeof.
Se vuoi degli int a 2 byte allora usa degli short.
Per copiare essenzialmente converti l'indirizzo del primo carattere in un puntatore a int e quindi lo valorizzi.

Ad esempio:

Codice PHP:
/*
* 25 april 2008 (i am working)
*
* Compiled and tested by MacApp with:
* i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
*
* output:
* aInt1: 1234;
* aInt2: 1234;
*
*/

#include <stdio.h>
#include <string.h>

int main (void){
    const 
int aIntSource 1234;
    const 
char aArray = (const char *) &aIntSource;
    const 
int aInt1 = *((const int *) &aArray [0]);
    
int aInt2;
    
memcpy (&aInt2aArraysizeof (aInt2));
    
printf ("aInt1: %d;\n"aInt1);
    
printf ("aInt2: %d;\n"aInt2);
    return 
0;

Grazie mille! Non mi ricordavo la funzione memcpy (sono anni che non programmo più)! Ora funziona tutto.
Effettivamente gli interi sono a 4 byte, e a me serve che lo siano... mi ero spiegato male prima .

A andbin dico che proprio leggendo quel documento vedo che non c'è una regola fissa sui campi dell'header di un file bmp. Può ad esempio mancare la sezione HeaderCoreInfo, o il campo riguardante la palette dei colori. Per cui mi conviene credo fare come sto facendo. Copio tutto senza preoccuparmi di cosa ci sia dentro...

Grazie a tutti!

Ciao!