2012-02-19 5 views
3

내가 실제로 달성하고자하는 것은 이진 파일을 버퍼링 할 때 패턴 검색 자로 사용할 수있는 동적 바이트 패턴의 배열입니다. 하지만 지금은 기초부터 시작하고 있습니다. StackOverflow에있는 예제를 기반으로 다음 코드를 작성했습니다.서명되지 않은 char 배열을 초기화하는 방법은 무엇입니까?

typedef unsigned char BYTE; 

int main() 
{ 
    BYTE *p[2][4] = { 
     {0x44,0x58,0x54,0x31}, 
     {0x44,0x58,0x54,0x00} 
    }; 

    return 0; 
} 

How to Initialize a Multidimensional Char Array in C?

나는 Windows 용 mingw32로 컴파일.

D:\> gcc example.c -o example.exe 

컴파일 할 때 다음과 같은 경고가 표시됩니다.

example.c: In function 'main': 
example.c:6:3: warning: initialization makes pointer from integer without a cast [enabled by default] 
example.c:6:3: warning: (near initialization for 'p[0][0]') [enabled by default] 
example.c:6:3: warning: initialization makes pointer from integer without a cast [enabled by default] 
example.c:6:3: warning: (near initialization for 'p[0][1]') [enabled by default] 
example.c:6:3: warning: initialization makes pointer from integer without a cast [enabled by default] 
example.c:6:3: warning: (near initialization for 'p[0][2]') [enabled by default] 
example.c:6:3: warning: initialization makes pointer from integer without a cast [enabled by default] 
example.c:6:3: warning: (near initialization for 'p[0][3]') [enabled by default] 
example.c:7:3: warning: initialization makes pointer from integer without a cast [enabled by default] 
example.c:7:3: warning: (near initialization for 'p[1][0]') [enabled by default] 
example.c:7:3: warning: initialization makes pointer from integer without a cast [enabled by default] 
example.c:7:3: warning: (near initialization for 'p[1][1]') [enabled by default] 
example.c:7:3: warning: initialization makes pointer from integer without a cast [enabled by default] 
example.c:7:3: warning: (near initialization for 'p[1][2]') [enabled by default] 

이 경고의 성격을 이해하지 못합니다. 어떻게 해결할 수 있습니까? 감사.

답변

5

를 드롭 *BYTE *p[2][4]에서 : pointer-to-charBYTE p[2][4]하지 다차원 배열 :

BYTE p[2][4] = { 
    {0x44,0x58,0x54,0x31}, 
    {0x44,0x58,0x54,0x00} 
}; 

당신은 char의 다차원 배열을 원한다.

+0

와우. 그렇게 쉬운 수정이었습니다. 궁금해. 내가 링크 된 예제가 내가 찾고있는 것과 매우 비슷한 모양의 포인터를 사용했을 때 포인터를 왜 드롭합니까? – redsolar

+0

@ redsolar 그 코드에서 가장 안쪽에있는 요소는 그 자체로 배열 (''00 "')입니다. – cnicutar

+0

오. 나는 지금 본다. 문제를 해결하고 답변 해 주셔서 감사합니다. 매우 감사. – redsolar

관련 문제