ansi c コードで問題が発生しています。PPM 画像 (P6) を読み取り、それをカラー (int) 配列に書き込みたいと考えています。すべてがうまくいくはずですが、残念ながらそうではありません。
問題は、ある時点で読み取りがフリーズすることです-毎回この同じ時点で。
これは読むためのコードです:
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:
X は 473、Y は 600
EDIT3:
私は言われたとおりに、私のソースコードを dropbox: codeにアップロードしました(今回は異なります) 。画像は異なりますが、ある時点でフリーズします。今回は70です。