久しぶりにCでモノを書くとあれこれ忘れていたので、メモ書き。
- getenvが返すポインタ領域は呼び出しのたびにオーバーライドされる
hpのドキュメントに書いてあったのだけれども、hp以外ならば、問題なしかも?って思うことは互換性を考えると邪道なので、自分でエリアを確保して、strncpyしたほうがよさげ。
- 配列の要素数を取得するには静的でないとダメよ
C FAQに書いていることなんだが、とっくに忘れていた。mallocで確保したモノに対しては、ポインタの大きさを返す。
- string::c_str()にって返されるポインタ領域は、string::insert() などの再割り当てを要求する演算の後では、無効となる
これも、getenvと同じノリかな。ちゃんと自分で領域を確保しやがれって感じだな。