2012-02-19 6 views
3

私が実際に達成しようとしているのは、バイナリファイルをバッファするときにパターンサーチャとして使用できる動的なバイトパターンの配列です。しかし、私は今は基本的に始まっています。私はStackOverflowで見つかった例に基づいて次のコードを持っています。符号なし文字配列を初期化する方法は?

How to Initialize a Multidimensional Char Array in C?

typedef unsigned char BYTE; 

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

    return 0; 
} 

私は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]から*

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

あなたはcharの多次元配列たく:BYTE p[2][4]ないpointer-to-charの多次元配列を。

+0

うわー。それはとても簡単な修正でした。私は興味がある。私がリンクしている例が、私が探しているものと非常によく似た何かのためにポインタを使用したときに、なぜポインタをドロップするのですか? – redsolar

+0

@redsolarこのコードでは、最も内側の要素はそれ自身が配列( '' 00 "')です。 – cnicutar

+0

ああ。私は今参照してください。それをクリアしていただきありがとうございます、あなたの答えに感謝します。とても有難い。 – redsolar

関連する問題