まだポインタが理解できないらしい俺

今日は順調だった。最近なにか役に立つ事をすると周りの人がカレーのサービス券*1をくれるんだが、今日数えたら30枚を越えていた。地域通貨ですね。違いますか。
先輩が構造体のコピーではまってた。「これどうなってんの?」「あー、=記号ってただ同じオブジェクト参照するだけなんで、コピーになんないですよ。それ同じ物指してるんで片方変えるともう一方にも影響します」「でもこの上の奴まではちゃんと出来てるんだけど。これ構造体だから代入はコピーになるはずだし」とかって話でよく見ると構造体の中にまた構造体とか構造体の配列とかごちゃごちゃ入っててなんか駄目らしい。値型の代入はどの辺までコピーしくれるのかが良くわからん。構造体のメンバの構造体は結局スタックに確保されてそうだからいけるんじゃないかなと思ったが、駄目とか言われる。shallow copy?とかっていう?あれ。ヘルプにはdeep copyなら全部いけます、って書いてあるのに肝心の方法が書いてない。配列はArrayを継承しているとか言って意味わかんないんだけど配列がいけないのか、構造体の中の構造体も駄目なのか。なんだよ、Cなら全部コピーしてくれるのに、っていってそれでもやっぱ中にポインタ入ってたら駄目なんですけど。「これ多分全部中身辿ってって自分でnewしながらコピーするしかないですよ」「えええ、だるい。そんな時間無い。ただのテスト用ドライバだし」で調べたら、シリアライズしてデシリアライズするのが簡単そうだ、五行で全部コピーできました。でも凄い遅いと思います。遅そう。

*1:10枚貯めるとポークカレーが只になる