大量の配列を宣言するくらいなら、ポインタで変数を宣言してmalloc()でメモリを
割り当てるでしょうな。

「ポインタと配列は違…」とか叫ばれてもね。そんなことは聞いてないし、言わ
なくていい。それは今問題にしてない。問題かもしれないが。

構造体の配列をextern宣言する時に配列数を含めておかないと正しい参照が
出来ないのはどういうことなのか、を気にしているの。
コンパイル時にアドレスが不定で決定できないならば、エラーなりワーニングを
出せば済む事なのだが、-Wallなどを付けても問題なく通る。