je doit effectuer un checksum.

j'ai la structure suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?