このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

爺感:コピーとポインター

リストの要素をまるまるリスト側にコピーして管理する方式は、パフォーマンスの問題を除いてもマズイ点がある。

コピーを、コピー元→コピー先 の矢印で書くことにして、参照(ポインター)も、参照元→参照先 の矢印で考える。A→A' とコピーされたとき、Aへの参照 X→A が自動的に前送り(forward)されて X→A' とはならない。

つまり、コピーすると参照(ポインター)がダングリングする。一般に、被参照(どこから指されているか)を管理するのはもの凄く大変だ。

参照・被参照関係が壊れるトラブルを避けたいなら、一度作ったオブジェクトはそのままアイデンティティを変化させなければよい。メモリ管理の観点からも、一度だけの生成消滅になって単純化される。

自分がポインターを使いすぎるので、意図的に埋め込みやコピーを使ってみたキライがあるのだが、なんか埋め込みがいいとは限らんなー。