はてなキーワード: ポインタとは
俺は設計より実装の方が苦手だわ。プログラミング言語の特に脈絡のない仕様(ファイルオープンして1行読むのってどうやるんだっけ?改行コードの扱いはどういう仕様だっけ?EOF判定はどういう関数だっけ?str2numに対応する処理の関数はなんだっけ?文字コードがUTF8じゃない場合にはなんか特別な引数書かないといけないんだっけ?1行読んでポインタを先頭に戻したい場合はどう書くんだっけ?ていうかディレクトリ内のファイルリスト取得する関数はなんだっけ?あー余計なファイルをはじくための正規表現の仕様はなんだっけ?.......)が全く記憶できなくてすげーストレス。なんど覚えても雑然としすぎていてすぐ忘れる。ファイル云々に限らずプログラミングは一事が万事全部そうだし…。
つまり、物語にガベージコレクションの機能があれば、自然と伏線は回収されるのではないか
参照をカウントしてゼロになったときにデストラクタが発動するだけでも構わない
つまり、スコープから外れるとスタックなどに確保された変数の領域が開放されるように、
物語のある地点のスコープに含まれるもの、近くてどうでもいいものは記憶からも消えていく
しかし、グローバルではないが、どれだけ広範囲なのか分からない伏線のようなものがあり、
物語が如何に進行しようとも、そのポインタだけはキープしている
ときどき登場人物が思い出したかのように伏線を語るとき、参照カウントが追加される
そうやってカウントが増えたり減ったりして、
最後は大団円でauto release poolの中に登録された伏線がドバーッと開放されていく
だから伏線にはポインタのように誰が所有しているとか責任を取るべきみたいな概念が当てはまるのかもしれない
つまるところ、メモリにゴミを置いたままプロセスが終了するということであり、
それでも問題ないのはOSのように周囲が尻拭いしてくれるからである
作者はコアダンプを吐くべきだ
いざ人に聞かれた時に説明できないものが多くて悔しい。分野偏っちゃったけど、適当に補完してほしい。
イメージとしては、原理自体はそう難しいものではないけど理解に時間かかるものを想像してほしい。
学びたてのときは理解している。今だと解説記事や解説記事を更にわかりやすくした記事等があるから理解には困らない。
人に解説することだって容易い。準備期間あったらちょっとした講演くらいできるとさえ思う。
だからしばらくして人に聞かれた時、自信満々に答える。
君も過去の私と同じ疑問を持ったのか、よし教えてあげよう。「まずこれはこうでしょ、そして…」
あれ?自分は今何を言おうとしていたんだ。頭が真っ白になる。
まず、の後が続かない。どうして。
忘れていることを忘れる、というか。すごく恥ずかしい。