1 はじめに -- この文書の目的

数値計算のプログラミングをしているとき、 行列と2次元格子上の数値データを扱う必要がしばしば生じる。 素朴に考えると、2次元配列で扱うことが思い浮かぶが、 色々な制限事項・注意事項がある。

説明する時間がないときは、 次のような「私の結論 (お勧めの対応策)」を述べて、 それに従ったサンプル・プログラムを示すことにしている。
私の結論 2017年版
行列と2次元格子上の数値データを扱うために
  • C ではポインターのポインターを使おう。
  • C++ では、その (ポインターのポインター) 外に、適当なクラス・ライブラリィ を使うという手もある。現時点での私のお勧めは Eigen である。

Eigen については、 別の解説を用意するとして、 この文書では、C でなぜポインターのポインターを使うことを勧めるか、 理由を述べる。


(桂田 [1] の中で少し書いてあるが、 規格の移り変わりについて良く状況判断できなかったこともあり、 今回少し時間をかけてまとめてみた。)

桂田 祐史
2017-03-06