0
픽셀의 색상을로드하고 1 바이트 변수를 씁니다. 이 색상 (빨강 픽셀 용)을 읽으 려 할 때 결과는 255입니다. 그러나 값은 4294967296입니다.이 값은 32 바이트 변수에 기록 된 것입니다. 왜 이런 일이 생길까요?C 비트 맵에서 색상 읽기
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);
***'void *'!!! *** –
의 데이터 형식은'printf()'의 형식 지정자가 잘못되어 정의되지 않은 동작이됩니다. ''L' '플래그는 a, A, e, E, f, F, g 또는 G 변환 지정자에서만 유효하며'printf()'에 인수가'long double'임을 알립니다. 그것을'printf ("% d \ n", data [0 -] [1] .R)'로 바꾸고 어떻게되는지보십시오. –