假設的Visual C/C++ 6,我有22399元,看起來像這樣的複雜的數據結構:如何在C中初始化一個相當複雜的char數組?
{
{ "(SAME", "AS", "U+4E18)", "HILLOCK", "OR", "MOUND"},
{ "TO", "LICK;", {1, 1, 0}, "TASTE,", "A", "MAT,", "BAMBOO", "BARK"},
{ "(J)", "NON-STANDARD", "FORM", "OF", "U+559C", ",", {1, 1, 0}, "LIKE,", "LOVE,", "ENJOY;", {1, 1, 4}, "JOYFUL", "THING"},
{ "(AN", "ANCIENT", {1, 2, 2}, {1, 2, 3}, "U+4E94)", "FIVE"},
...
}
什麼是申報的最佳方式?我試過的東西
char * abbrevs3[22399][] = { ... };
和
char * abbrevs3[22399][][] = { ... };
但編譯whinges一些慢性。
編輯:數據是某些Unihan字符描述的數據庫。我一直在探索壓縮數據的各種方法。就目前而言,您有22399個條目,其中每個條目可能包含不同數量的字符串,或者{縮寫標記,最後一次出現的行,最後一次出現的行的元素}的三元組。
順便說一句格雷格的說話,我可能需要讓每行包含相同數量的元素,即使它們中的一些是空字符串。是這樣嗎?
編輯#2:它發生在我身上,三胞胎的一些數值超出了字符的限制。
你如何索引到數組中?它看起來有點像在第二行中的{1,1,0}三元組可能指的是前一個條目(否則,它是自引用的),所以即使數組工作得最多自然從零開始。 – 2008-10-12 21:48:42
你是對的。是的,1是用於生成陣列的VBScript中的一個artefact。一旦我找出如何真正讓吸盤工作,它會在某個時候進行調查。 – bugmagnet 2008-10-13 15:55:33