假设的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