2013-01-10 51 views
0

下午好,是否可以終止C++結構體的二維數組?謝謝。是否有可能終止C++結構的2維數組?

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} 

} 
}; 
+2

你是什麼意思由null終止? –

+0

Luchian Grigore,NULL終止意味着你可以用嵌套的for循環遍歷2維數組的內容。謝謝。 – Frank

+0

@Frank爲什麼你不能迭代使用數組的實際大小,而不是尋找已經初始化爲這個* null *值的結構? – Praetorian

回答

2

空終止僅在有指針數組時纔有意義。你必須把一個完整的空行有:

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

幸運的是,C和C++讓你得逞,只是一個單一的初始化,所以只是{ { 0 } }應該工作。您還需要使陣列大小爲[4][3]

+0

+1只要零不是這些結構字段的有效值,就會工作。 – Praetorian

+0

是的 - 這是我根據他的「無效」終止要求所做的假設。 –

+0

@Carl Norum,我剛剛嘗試{0,0,0},並得到編譯器錯誤\t錯誤C2078:太多初始值設定項。謝謝 – Frank

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 } } 

};

+0

@Carl Norum,請讓我知道你對我提出的答案的看法。謝謝, – Frank