現在、画像用に 320x240 の配列を作成しようとしていますが、ピクセルは行ごとに送信されます (一度に 320)。そこで、240 をカウントするループを実行して、各カウントで小さい配列 [320] を大きい配列 [240] [320] に挿入することを考えました。
ここに私がこれまでに行ったコードがあります。
int main()
{
int mi,mj,this;
while(this < 240)
{
decodeHex(stringToDecode,hexValues);
compile(this,hexValues);
this=this+1;
}
for(mi = 0; mi < 240; mi=mi+1)
{
printf("\npctureArray [%d][%d]\n",mi,320);
for(mj=0; mj < 320;mj=mj+1)
{
printf("%lx",pictureArray[mi][mj]);
}
}
return 0;
}
void decodeHex(char * encodedString,unsigned long * hexConverted)
{
int i;
unsigned long offset = 0x41;
for(i=0;i<strlen(encodedString);i = i+3)
{
*hexConverted = (((unsigned long)encodedString[i]- offset) << 8) | (((unsigned long)encodedString[i+1] - offset) << 4) | ((unsigned long)encodedString[i+2] - offset);
hexConverted = hexConverted + 1;
}
}
void compile(int i,unsigned long * ptr)
{
int j;
for(j= 0;j<320;j=j+1)
{
pictureArray[i][j] = (unsigned long)*(ptr+j);
}
}
コードのデコーダー部分は char 配列 [960] を受け取るため、unsigned long array[320] に変換されます <--- 960/3 = 320 RGB
コードにセグメンテーション エラーがある理由がわかりません。誰かが覗いて、ここに欠けているものがあるかどうか教えてもらえますか