title: Organise multiple fixed-length-string dictionaries for "sparse" string-lengths
body: <p>I need to load some fixed-length-string dictionaries from disk: count of word-lengths ( 1 .. 18 ), word-lengths ( 3 .. 20 ), word-counts ( 1 .. N ) for each word-length ( N &lt; 50,000 ) are all unknown until run-time.</p>
  <p>I'm new to C and just about coping with array-of-string:</p>
  <pre><code>char (*words5)[6]; // my word-lengths don't count \0 ...to preserve sanity
  words5 = calloc(wordcnt * sizeof *words5);
  </code></pre>
  <p>That's fine for one dictionary, but I will have 1 .. 18 different dictionaries.
  It seems &quot;untidy&quot; to have:</p>
  <pre><code>char (*words3)[4];
  char (*words4)[5];
  ...
  char (*words20)[21];
  </code></pre>
  <p>when most will be unused for most runs of the programme.</p>
  <p>What is a better way of &quot;organising&quot; these dictionaries?</p>
  <p>Chris</p>