Additionner tout les bytes d'une structure
je doit effectuer un checksum.
j'ai la structure suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| typedef struct charHeader {
char name [100];
char mode [8 ];
char uid [8 ];
char gid [8 ];
char size [12 ];
char mtime [12 ];
char chksum [8 ];
char typeflag [1 ];
char linkname [100];
char magic [6 ];
char version [2 ];
char uname [32 ];
char gname [32 ];
char devmajor [8 ];
char devminor [8 ];
char prefix [155];
char empy [12 ];
} charHeader; |
Je doit ajouter chaque Bytes de cette structure, en prenant chaque bytes comme un unsigned int.
j'ai essayé (sans succès) :
Code:
1 2 3 4 5 6 7
|
charHeader buffer;
int chksum = 0;
char *pPointer = &buffer;
for(i=0; i < sizeof(buffer); i++) {
chksum += (unsigned int)*pPointer++;
} |
Mais vu la valeur c'est correct. Une idée ?