假设 Visual C/C++ 6,我有一个包含 22399 个元素的复杂数据结构,如下所示:
{
{ "(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][][] = { ... };
但编译抱怨一些慢性的东西。
编辑:数据是某些 Unihan 字符描述的数据库。我一直在探索各种压缩数据的方法。就目前而言,您有 22399 个条目,每个条目可能包含不同数量的字符串,或 { abbrev marker, line where last seen, element of that line where last seen } 的三元组。
顺便说一下 Greg 的说法,我可能需要让每一行包含相同数量的元素,即使其中一些是空字符串。是这样吗?
编辑#2:我突然想到三元组中的一些数值超出了 char 的限制。