Assuming Visual C/C++ 6, I have a complex data structure of 22399 elements that looks like this:
{
{ "(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"},
...
}
What's the best way to declare this? I've tried things like
char * abbrevs3[22399][] = { ... };
and
char * abbrevs3[22399][][] = { ... };
but the compile whinges something chronic.
EDIT: The data is a database of descriptions of certain Unihan characters. I've been exploring various ways of compacting the data. As it stands you have 22399 entries, each of which may contain a varying number of strings, or triplets of { abbrev marker, line where last seen, element of that line where last seen }.
By the way Greg's talking, I may need to have each line contain the same number of elements, even if some of them are empty strings. Is that the case?
EDIT #2: And it occurs to me that some of the numeric values in the triplets are way outside the limits of char.