0

下午好,是否可以 NULL 终止 C++ 结构的二维数组?谢谢你。

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

只有当您有一个指针数组时,空终止才有意义。您必须在此处放置一个完整的空行:

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

幸运的是,C 和 C++ 让您只需进行一次初始化即可,因此{ { 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 回答