Предполагая 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 записей, каждая из которых может содержать различное количество строк или триплетов {маркер сокращения, строка, где последний раз видели, элемент этой строки, где последний раз видели}.
Кстати, Грег говорит, что мне может потребоваться, чтобы каждая строка содержала одинаковое количество элементов, даже если некоторые из них являются пустыми строками. Это тот случай?
РЕДАКТИРОВАТЬ # 2 : И мне приходит в голову, что некоторые числовые значения в триплетах выходят далеко за пределы char.