ポインタ制覇本

C言語ポインタ完全制覇読了

とても面白い内容でした。ただJavaに対する不満が節々に表れていて少しくどいような気もしました。まぁ面白かったからそれはそれで良いと思いますが。特に勉強になったのが2章と3章あたり。この辺はWebで勉強してたときにあまり詳しく出てなかった内容なので…

汎用的な連結リストを構築する

C言語ポインタ完全制覇 5-2-4連結リストは得てして同じような実装を量産する。そこで実際に持つべきデータをvoidポインタにしておくことで何でも格納可能な連結リストを実現できる。ただし何でも入ってしまうが故、何が入ってるのかわかりにくくなるので慎重…

scanfよりもfgets&sscanf(or sscanf_s)を使うこと

C言語ポインタ完全制覇 2-1書き忘れ。 scanfを使うと、マッチしなかったデータが入力ストリームの残ってしまうので次のscanf等の呼び出しでおかしくなってしまう可能性がある。それをさせないためにまずfgetsで改行までの入力を先に全て取得し、改めてsscanf…

細かいreallocはフラグメンテーション化を助長する

C言語ポインタ完全制覇 4-2-1realloc関数で必要な分をその都度確保していたらフラグメンテーション化の恐れがあるので、一般的にはreallocで一時変数を確保&拡張し使いまわすというのが正しいやり方のようです。ということで前に実装したファイルの内容を行…

ポインタの共用体

C言語ポインタ完全制覇 5-2-4あまりにもサイズの違うデータを共用体で宣言する場合は共用体のポインタを使うほうが良い。 union { Foo *foo; Bar *bar; Baz *baz; } u; ただし、mallocによるメモリ確保と、freeしなければならないというデメリットもある。ト…

フラグメンテーションとrealloc関数

C言語ポインタ完全制覇 2-6-5、2-6-6 このあたりは凄く有用ですね。mallocを使うことで小さな空きブロックが溜まっていくのでメモリ効率が悪くなる。reallocだとその場所から拡張するので、うまく空きブロックに当たれば効率はいいが、無かった場合にコピー…

malloc関数の戻り値をキャストするなという話

C言語ポインタ完全制覇 2-6-1 よけいなキャストは書かないほうが、すっきりして読みやすいと思えるのですが。(中略)malloc()の戻り値をキャストするのはもうやめましょう。CはC++じゃないんですから。 僕は今のところmallocの戻り値を明示的にキャストしてい…

Cの作者による言語Limbo

C言語ポインタ完全制覇 3-1-3C言語の開発者の1人、Dennis Ritchieが開発したLimboという言語があるらしい。全然知らなかった。機会があれば調べてみよう。

Cはメモリをどう使うのか

C言語ポインタ完全制覇 第2章 ここの説明は凄くいいですね。かなり勉強になってます。スタック構造で実行されているという部分も図解入りで凄くわかりやすかったです。また領域を破壊して無限ループしてしまうというサンプルもあり、すんなり頭に入ってきま…

可変長引数の関数は自重せよ

C言語ポインタ完全制覇 2-5-3 可変長引数の関数では、プロトタイプ宣言による引数の型チェックがききません。また、呼び出された側では、呼び出し側が正しく引数を渡していると全面的に信用して動くことしかできません。これらの点から、可変長引数を使った…

配列を関数の引数として値渡ししたい場合

C言語ポインタ完全制覇 1-3-6通常、配列は関数にそのまま渡すことはできません。関数に渡した時点でポインタ型でしか受け取れないからです。ですが、構造体を経由すれば可能であるということ。なるほど。実際にうまくいくか試してみます。 #include <stdio.h> struct </stdio.h>…

p++とp[i]の効率上の問題

C言語ポインタ完全制覇 1-3-4例えばループの中で何度もp[i]、つまり*(p+i)と書いてデータを参照するよりも、ループの初期化等でp++しておいたらループの中では*pで参照できるので効率が良い。 と、いうのは古の効率化手法らしい。今時のコンパイラなら最適化…

ポインタはあくまで型である

C言語ポインタ完全制覇 1-2-1ポインタという変数、という考え方ではなくて「ポインタ型の変数」と考えろってことか。確かにその辺混同するとわけがわからないことになるかもね。

C言語ポインタ完全制覇購入しました

C言語ポインタ完全制覇 (標準プログラマーズライブラリ)作者: 前橋和弥出版社/メーカー: 技術評論社発売日: 2001/01/01メディア: 単行本購入: 22人 クリック: 147回この商品を含むブログ (75件) を見るK&R本も読み終わったので、次はこの本をじっくり読み進…