2014-02-24 4 views
0

현재 이미지의 320x240 배열을 만들려고하고 있지만 픽셀은 한 번에 320 개씩 줄 단위로 전송됩니다. 그래서 저는 카운트가 240 인 루프를 실행하는 것에 대해 생각했습니다. 각 카운트에서 더 작은 배열 [320]을 더 큰 배열 [320]에 삽입하는 것입니다. [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] < --- 3분의 960 = 320 RGBS

I 혼란있어 내 코드가 세분화 오류가있는 이유는 무엇입니까? 아무도 들여다보고 여기에없는 것이 있으면 알려 줄 수 있습니까?

+0

'this'는 초기화되지 않았으며 값은 불확정합니다. 초기화되지 않았습니다. 'this'가 C++의 키워드라는 점을 감안할 때 이는 아마도 식별자로서는 좋지 않은 선택 일 것입니다. –

+0

질문은 C++가 아니라 C에 관한 것으로 보입니다. 따라서 식별자로 'this'가 문제가되지 않아야합니다. –

+0

감사합니다! 어쨌든, 나는 이미 그것을 분류했다. 문제는 문제는,에 char 배열 [960] =이었다이었다 ".... 960 개 문자 ..." 난 당신이 문자열 그런 식으로 선언 할 때 문자 배열 [#해야한다고 생각하기 때문에 ofelems +1] = ".... #ofelems ...." 마지막 줄 "\ 0"때문에 – nciacrklo

답변

0

this의 초기 값을 설정하십시오. 초기화없이

this = 0; 

, this0가 포함되지 않습니다.

+0

이미 정렬했습니다 .pls 내 대답을 확인하십시오. Btw 감사합니다! – nciacrklo

0

고마워요! 어쨌든, 나는 이미 그것을 분류했다. 문제가 있었다

,

char array[960] = " ....960 letters..." 

난 당신이 문자열 그런 식으로 선언 할 때, 그것은 마지막에

char array[#ofelems + 1] = ".... #ofelems...." 

"일"때문에 임베디드 "\0"이어야한다고 생각하기 때문에 요소

내가 틀렸다면 나를 바로 잡아주세요. 감사!

관련 문제