ポインタのポインタ(ダブルポインタ)

ポインタ自体がC言語でわかりにくい部分とされているみたいだけれども、今日のメンバーフォロー箇所はポインタのポインタ(ダブルポインタ)を使用している箇所だった。ちなみにメンバーは経験3年くらい。

問題箇所
constポインタ(foo)に直接ポインタ(bar)を代入出来ないため、一旦ポインタ変数(foo)のポインタを取得してポインタ(bar)を代入しなければならない。

const char *foo;
char bar;
foo = &bar;

とは(コンパイラがエラーを吐いて)出来ないので、

const char *foo;
char bar;
char **work;
work = &foo;
*work = &bar;

とやらなければならないのだが、これが分からないらしい。普通のポインタが分かっているんだから、このパターンも良く考えたらわかるハズなんだけど、ポインタのポインタっていうだけで尻込みしてしまうのかなぁ。ポインタ型と整数型共に同じ箱って観点で見ることが出来るようになって欲しい
実際のソースはこんなに単純ではないけれど。。。

今日やったこと

--------------------------------------------------------------------------------
*1・・・sedコマンドについて色々調べてたけれどもIBMのサイトに分かりやすい説明が載っていた。いやぁー奥が深い。パターン・スペースとホールド・スペース の使い方がコツとみた。
*2・・・どうやってアイディアを仕様書に落とすかってことについてだったけれども、ちょっとだけ新鮮だったのはアフィニティダイヤグラムを使用してアイディアを整理していくってことくらいかなぁ。

0 Comments:

Post a Comment