我目前正在尝试为图像创建一个 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);
}
}
代码的解码器部分接收一个字符数组[960],因此它被转换为无符号长数组[320] <--- 960/3 = 320 RGB
我对为什么我的代码有分段错误感到困惑。任何人都可以偷看并告诉我这里是否有我遗漏的东西