0

こんにちは、C++ 構造体の 2 次元配列を NULL で終了することは可能ですか? ありがとうございました。

sPRIORITYANALYZER sArrayOfArrayAnalyzerArray[3][3] = {
{ 
  {mdMUReadWrite::First,mdProfiler::DataTypeFirstName},
  {mdMUReadWrite::FullName,mdProfiler::DataTypeFullName},
  {mdMUReadWrite::InverseName,mdProfiler::DataTypeInverseName} 
},

{ 
  {mdMUReadWrite::Last,mdProfiler::DataTypeFirstName},
  {mdMUReadWrite::FullName,mdProfiler::DataTypeFullName},
  {mdMUReadWrite::InverseName,mdProfiler::DataTypeInverseName} 
},

{
  {mdMUReadWrite::Zip9,mdProfiler::DataTypeZipOrPostalCode},
  {mdMUReadWrite::Zip5,mdProfiler::DataTypeZipOrPostalCode},
  {mdMUReadWrite::CityStZip,mdProfiler::DataTypeCityStateZip}

}
};
4

2 に答える 2

2

Null 終了は、ポインターの配列がある場合にのみ意味があります。そこに完全な空の行を配置する必要があります。

{ { 0, 0 }, { 0, 0 }, { 0, 0 } }

幸いなことに、C と C++ では初期化を 1 回行うだけで済むので、問題なく{ { 0 } }動作するはずです。配列のサイズも にする必要があります[4][3]

于 2013-01-10T21:08:56.197 に答える
0

こんばんは、次のコードは提案された正解であり、Microsoft Visual Studio 9.0 C++ コンパイラでコンパイルされます。ありがとうございました。

sPRIORITYANALYZER sArrayOfArrayAnalyzerArray[][4] = {

{ 
  {mdMUReadWrite::First,mdProfiler::DataTypeFirstName},
  {mdMUReadWrite::FullName,mdProfiler::DataTypeFullName},
  {mdMUReadWrite::InverseName,mdProfiler::DataTypeInverseName},
  (mdMUReadWrite::MatchcodeMapping)0
},

{ 
  {mdMUReadWrite::Last,mdProfiler::DataTypeFirstName},
  {mdMUReadWrite::FullName,mdProfiler::DataTypeFullName},
  {mdMUReadWrite::InverseName,mdProfiler::DataTypeInverseName},
  (mdMUReadWrite::MatchcodeMapping)0
},

{
  {mdMUReadWrite::Zip9,mdProfiler::DataTypeZipOrPostalCode},
  {mdMUReadWrite::Zip5,mdProfiler::DataTypeZipOrPostalCode},
  {mdMUReadWrite::CityStZip,mdProfiler::DataTypeCityStateZip},
  (mdMUReadWrite::MatchcodeMapping)0

},

{ { (mdMUReadWrite::MatchcodeMapping)0, (mdProfiler::ProfilerDataType)0 }, { (mdMUReadWrite::MatchcodeMapping)0, (mdProfiler::ProfilerDataType)0 }, {(mdMUReadWrite::MatchcodeMapping) 0, (mdProfiler::ProfilerDataType)0 } }

};

于 2013-01-10T21:55:20.163 に答える