2017-03-16 13 views
0
float kernel[kernel_size][kernel_size] = { 
     0.000036, 0.000363, 0.001446, 0.002291, 0.001446, 0.000363, 0.000036, 
     0.000363, 0.003676, 0.014662, 0.023226, 0.014662, 0.003676, 0.000363, 
     0.001446, 0.014662, 0.058488, 0.092651, 0.058488, 0.014662, 0.001446, 
     0.002291, 0.023226, 0.092651, 0.146768, 0.092651, 0.023226, 0.002291, 
     0.001446, 0.014662, 0.058488, 0.092651, 0.058488, 0.014662, 0.001446, 
     0.000363, 0.003676, 0.014662, 0.023226, 0.014662, 0.003676, 0.000363, 
     0.000036, 0.000363, 0.001446, 0.002291, 0.001446, 0.000363, 0.000036 
}; 


float kernel[kernel_size][kernel_size] = { 
      {0.000036, 0.000363, 0.001446, 0.002291, 0.001446, 0.000363, 0.000036}, 
      {0.000363, 0.003676, 0.014662, 0.023226, 0.014662, 0.003676, 0.000363}, 
      {0.001446, 0.014662, 0.058488, 0.092651, 0.058488, 0.014662, 0.001446}, 
      {0.002291, 0.023226, 0.092651, 0.146768, 0.092651, 0.023226, 0.002291}, 
      {0.001446, 0.014662, 0.058488, 0.092651, 0.058488, 0.014662, 0.001446}, 
      { 0.000363, 0.003676, 0.014662, 0.023226, 0.014662, 0.003676, 0.000363}, 
      {0.000036, 0.000363, 0.001446, 0.002291, 0.001446, 0.000363, 0.000036} 
     }; 

ご覧のとおり、2番目の配列にはすべての行に{}が追加されています。これら2つの配列に違いはありますか?

これらの2つのプログラムは同等であるか、プログラムを別のプログラムに置き換えた場合、プログラムの動作が異なりますか?

+3

'kernel_size'を知らずに言うことはできません。 – AnT

+1

に依存します。 'kernel_size == 7 'ならば、それは同じです。それ以外の場合はそうではありません。 –

+1

はいkernel_size == 7、申し訳ありませんが、追加することを忘れました –

答えて

4

kernel_sizeが7の場合、違いはありません。そうでなければ、それらは異なっている。

最初のバージョンは行ごとの様式で完全行を初期化するために順次初期化子を使用する(および、もしあれば、アレイの残りをゼロで初期化)は、第2のバージョンは次float [kernel_size]にスキップする

サブ配列(行)は、それぞれ内側の{にあります(存在する場合は、各行の残りの部分をゼロ初期化します)。

kernel_sizeが7より大きい場合、明らかに2番目のバージョンとは異なる初期化レイアウトになります。

+0

なぜ違うのか説明してください。 'kernel_size'が7より大きい場合、いくつかの要素は初期化されず、その値はランダムです。 7未満の場合は、インデックスエラーがあります。 –

+2

@SembeiNorimaki私は要素が初期化されていないことを確認しています。 – NathanOliver

+1

@SembeiNorimaki、7より大きい場合、残りの要素はランダムではなく0になります。 7未満の場合、プログラムは不正です(コンパイルされません)。 – chris

0

はい、これは同等です!目的の行を示すネストされた中カッコはオプションです。 Here例を見ることができます。

0

最初は1エントリ、49エントリあり、2つ目は7x7エントリの2アレイです

関連する問題