2011-11-12 11 views
0

私は検索しましたが、これに対する答えは見つかりませんでした。私が知りたいのはこれです:const配列のデフォルト値(すべてのインデックスが明示的に設定されていない場合)?

私はstatic unsigned char const ARRAY[256] = { [0] = <some_value> };を宣言すると、 は、私は(この場合は除くすべてのインデックス0の要素)、不特定の要素を期待することができ、特定の値を持つように、または、彼らはランダムになりますか?

すべての要素が埋め込まれていない一定のルックアップテーブルに必要ですが、大きすぎないため、スペースを無駄にすることは問題にはなりません。

より適切なデータタイプまたは表記法の提案を歓迎します。

ありがとうございます!

答えて

3

残りの配列はゼロに初期化されます。

また、たとえば、配列内の複数の要素を初期化することがあります。

char arr[10] = {1, 2, 3}; 

はにARR配列を作成し、初期化されます:あなたは、いくつかの特定の行動をしたい場合は

index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 
--------------------------------------------- 
value | 1 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 
+0

ありがとうございました、今私は私の方法で安全に行くことができます。 :) – Matej

-1

、そのように初期化します。あなたのプログラムの正しい動作がヒンジされているコンパイラのいくつかの奇抜さを仮定すると、単に問題を尋ねるだけです。

+2

イニシャライザで指定されていない要素は、明確に定義された値を持ちます。 – nos

0

あなたはそれについて明示的になりたいとあなたはGNU Cを使用している場合は、...が常にあります:

char array[256] = {[0 ... 255] = 0, [7] = 'f',/*and so on...*/}; 
+0

いいえ、* always * '... 'はありません。これは言語の一部ではなく、gcc固有の拡張です。 –

+0

あなたは正しいです。修正するために編集。 – Dave

+0

は0の範囲を使用すると冗長ですが、他の値の場合は便利です。 – u0b34a0f6ae

関連する問題