忘れた頃にやねのすずめ。(^^ゞ
# いまさらながら思いついたので、自己フォローです

TAKE1 さんの <9k6i96$r69$1@news.stnet.ad.jp> より...

>1行1列、2行2列、、、、n行n列
>というように動的に行列を増やす。
>
>配列は別確保しない。(本当に1つの配列をふやしていく)
>
>配列に入れた内容は、初期化しない。
>
>例
>r[1][1],r[2][2].....r[n][n]
>
>ということをしたいのですが、


 添字を付け直し、1次元配列として扱って
C言語の realloc() 関数(メモリ割り当てサイズの変更)を使うのは
同じですが、
 x, y を2進法で表して

  ... x2 x1 x0,  ... y2 y1 y0

となるとき、

  i = ... y2 x2 y1 x1 y0 x0

を新しい添字とすれば良いですね。
つまり、下図のように番号をつけるわけです:

   0   1   4   5 ...

   2   3   6   7 ...

   8   9  12  13 ...

  10  11  14  15 ...

   :   :   :   :

 この方法は、3次元以上でも応用できます。
また、3進法でも10進法でもできます。

 そのかわり、配列のサイズが 4 (=2^2) のべき乗になったりします。
# 半導体メモリ的

 処理はシフト演算の繰返しでしょう。
# ハードウェア化すると速いかも(線の入れ換えですむので)


-- 
 (^v^) (.. )(o^<  >^o)
 (( ))//^ ))(( ))(( ))
= //林 //林  //林 //林 ================================^
  http://www5a.biglobe.ne.jp/~espoir/ やねのすずめ //  \