0
Im'm加載像素的顏色並寫入一個單字節變量。當我想要讀取這種顏色(對於紅色像素)應該得到結果: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 *'的Dat kast !!! *** – 2013-05-08 18:18:08
printf()的格式說明符無效,並導致未定義的行爲。 'L'標誌只對a,A,e,E,f,F,g或G轉換說明符有效,並告訴'printf()'參數是'long double'。嘗試將其更改爲'printf(「%d \ n」,data [0 - ] [1] .R)'並查看會發生什麼。 – 2013-05-08 20:55:37