[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

pointerに関するtorazukaのブックマーク (3)

  • ポインタと配列の微妙な関係 - めもめも

    話の背景 C言語のポインタと配列の関係については、『「配列へのポインタ」と「ポインタの配列」の見分け方』で紹介した「エキスパートCプログラミング」という書籍の「徹底的な解説」をこよなく愛していたのですが、最近、紹介されて「C言語ポインタ完全制覇」という書籍を読んだところ、類似の内容が、もう一段噛み砕いた形で説明されており好感を持ちました。 その中で、『「配列名に[ ]を付けずに配列名だけ書くと先頭要素へのポインタになる」という説明は間違っており、[ ]を付けようが付けまいが、いつでも配列名は先頭要素へのポインタになるのだ。』という記述があります。 これはなかなか説明が難しい部分で、実は私も、上記書籍の説明は数回読み返して理解できました。以下に私なりの解説を掲載するので、興味ある方は、解読(?)に挑戦してください。(もちろん、上記の2冊の書籍もおすすめですよ!) 解説 まず、ポインタ変数はメ

    ポインタと配列の微妙な関係 - めもめも
    torazuka
    torazuka 2012/07/26
    コンパイラが従うルールが、こんなふうに明示された解説は分かりやすいなぁ。
  • 世界で2番目にわかりやすいポインタの話

    これ以上に解りやすく説明できるという人は、@super_rti までURLを教えて下さい。世界一わかりやすいの看板を差し上げます。

    世界で2番目にわかりやすいポインタの話
    torazuka
    torazuka 2012/06/12
    続きが読みたいよー
  • スマートポインタの使い方 その1:unique_ptr - C++Builder好きの秘密基地

    スマートポインタって何? C++において、operator newでメモリ領域(ヒープ領域)を動的に確保した場合、その領域はoperator deleteでプログラマが責任を持って解放してやらなければならない。しかし、deleteを書き忘れたり、例外が発生したときの処理を怠った場合など、それが正しく行われないことはよくある。正しく解放されなかった領域はOSやプロセスが使用可能なメモリ領域を「不正占拠」し、それが積もり積もると、OSやプロセスが停止する場合がある。 #include <memory> class Mess {}; void f(Point p1, Point p2) { Rectangle* r(new Rectangle(p1, p2)); r->rotate(45); // 矩形を45度回転 // ... if (in_a_mess) throw Mess(); // 例

    スマートポインタの使い方 その1:unique_ptr - C++Builder好きの秘密基地
  • 1