C言語 メモ

久しぶりにCでモノを書くとあれこれ忘れていたので、メモ書き。

  • getenvが返すポインタ領域は呼び出しのたびにオーバーライドされる

hpのドキュメントに書いてあったのだけれども、hp以外ならば、問題なしかも?って思うことは互換性を考えると邪道なので、自分でエリアを確保して、strncpyしたほうがよさげ。

  • 配列の要素数を取得するには静的でないとダメよ

C FAQに書いていることなんだが、とっくに忘れていた。mallocで確保したモノに対しては、ポインタの大きさを返す。

  • string::c_str()にって返されるポインタ領域は、string::insert() などの再割り当てを要求する演算の後では、無効となる

これも、getenvと同じノリかな。ちゃんと自分で領域を確保しやがれって感じだな。