ピクセルの色を読み込んで、1 バイトの変数を書き込みます。この色 (赤いピクセルの場合) を読み取ると、結果は 255 になりますが、値は 4294967296 です。このことから、値が 32 バイト変数に記録されていることがわかります。なぜこれが起こるのですか?
struct RGBpix{
char R;
char G;
char B;
}typedef RGB;
...
RGB **data=(RGB **)malloc(sizeof(RGB *)*Picture.biWidth);
for(i = 0; i < Picture.biWidth; i++){
data[i] = (RGB*) malloc(sizeof(RGB) *Picture.biHeight);
}
...
for(i=0;i<Picture.biWidth;i++){
for(j=0;j<Picture.biHeight;j++){
fread(&data[i][j].R, 1, 1,bmpFile);
fread(&data[i][j].G, 1, 1,bmpFile);
fread(&data[i][j].B, 1, 1,bmpFile);
}
}
printf("%Ld", data[0][1].R);