K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[868] Re:List 4-6
投稿者:マスタング
2007/02/20 02:13:25

>「ポインタ完全制覇」のp218のList 4-6のプログラムで質問させてください。 > >76--79行目でmallocを使っているのは何故なのでしょうか。 > >代わりに、 > >return st_line_buffer; > >では駄目なのでしょうか。違いがわからないのですが。 これは、オブジェクト指向の防御的コピーに近いですが、 read_line()が、st_line_bufferを素直に返している訳ではないので ちょっと違うかもしれません。 read_line.cファイルが1つのオブジェクト、st_line_bufferがprivateな メンバと考えると、実装詳細を直接戻すと、カプセル化が崩れるという 考え方も可能だと思います。 違いは以下です。 // もし、read_line()で、st_line_bufferを返す場合 char s1, s2; s1 = read_line(fp); // 例えば、s1が、"abc" s2 = read_line(fp); // 例えば、s2が、"def" // ここで、s1もs2も、"def"となる! // もし、read_line()で、コピーを返せば、 // s1は"abc"、s2は"def"となる。
[この投稿を含むスレッドを表示] [この投稿を削除]