ここで、2次元配列とポインタ配列を比較してみましょう。char *week[ ] = {"Monday", "Tuesday", "Wednesday"}; /* ポインタ配列 */ char week[ ][10] = {"Monday", "Tuesday", "Wednesday"}; /* 2次元配列 */
上記のように、文字列の長さにばらつきがあると、2次元配列ではそれを収容する最大の大きさの領域を取っておかなければいけません(上記の例では、 "Monday"の6文字+1文字('\0')に対して、10文字分の領域を取ってある)。また、メモリ領域上に配列要素全体を示すための連続したメモリが必要となります。よって、このような例では、メモリを効率良く使用するポインタ配列でデータを表現した方が良いでしょう。