ポインタのポインタ


【ポインタのポインタとは】

構造体などを扱うとき、構造体の配列にすると便利なことがあります。

例えばロガーなどで下記のように異なるデータの組を一括して扱うと
便利です。
つまり計測した時間と複数チャネルの計測値を一体として扱うように
するわけです。

struct log {
    char tstamp[10]; //time stamp
    long ch0; //channel No0 data
    long ch1; //channel No1 data
} ;

そしてさらにこれを配列にして

struct log logger[100];

と宣言すれば、100個のログデータの格納エリアが確保できる
わけです。
こうしておくと、各配列要素へのアクセスにポインタを使いたくなります。
この構造体配列の各要素の先頭アドレスをポインタとした配列を考え
ます。

struct  log  *ptr[ ] ;
for (i=0; i<100; i++)
{
    ptr[i] = &logger[i];
}

こうすると、このポインタ配列のポインタが欲しくなります。
通常は

  struct **pptr;

でポインタのポインタが定義できるのですが、CCSのCコンパイラでは、
まだこのポインタのポインタはサポートしていないようです。








       目次ページへ