나는 내 ansi 코드에서 몇 가지 문제로 고심하고있다. PPM 그림 (P6)을 읽고 컬러 (int) 배열에 쓰고 싶습니다. 모든 것이 훌륭하게 작동해야하지만 불행히도 그렇지는 않습니다.Ansi C가 PPM 파일 freez에서 읽음
문제는 매번 같은 지점에서 읽기가 멈추는 것입니다. - 모든 확인되기 전에
int **red,**blue,**green;
//... Some code, allocations etc.
static unsigned char a[3];
for(i = 0; i < x; i++)
{
for(j = 0; j < y; j++)
{
fread(a, 1, 3, pic);
red[i][j] = a[0];
//green[i][j] = a[1];
//blue[i][j] = a[2];
}
}
이 값이 미친지고 24 읽
이
읽기위한 코드입니다. 이 값은 빨간색으로 표시되고 루프가 끝날 때까지 24입니다.나는 여기에 무슨 일이 일어나고 있는지 알지 못합니다. 그래서 이것은 여러분에게 몇 가지 조언을 구하는 것입니다 - 여기에 무엇이 잘못 될 수 있으며 어떻게 고칠 수 있습니까?
red = (int **)malloc(sizeof(int*) * x);
green = (int **)malloc(sizeof(int*) * x);
blue = (int **)malloc(sizeof(int*) * x);
for (i = 0; i < x; i++)
{
red[i] = (int*)malloc(sizeof(int) * y);
green[i] = (int*)malloc(sizeof(int) * y);
blue[i] = (int*)malloc(sizeof(int) * y);
}
EDIT2 :
,745,151 :X가 473 Y 600
EDIT3이다
EDIT
이 내 졌는가
Dropbox에 내 소스 코드가 포함 된 그림 (이번에는 다른 내용)을 업로드했습니다 : code. 다른 그림에도 불구하고 그것은 여전히 어떤 시점에서 멈춘다. 이번에는 70입니다.
'int ** read' 또는'int ** red'? –
빨강, 파랑 및 녹색을 어떻게 할당 했습니까? – cup
루프 변수가 거꾸로되어 있습니다. 외부 루프는 0에서 Y까지 카운트해야하고 내부 루프는 0에서 X까지 카운트해야합니다. – BitBank