- 400 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 19:25:00 ]
- >351
生成と解放を対にしろってのは、基本方針としてもよいと思う。 よって、strdupのような関数は、できれば使いたくない派。 strdupは生成と解放の数が合わなくなる。 >392 >> 呼出元が生成と破棄を対にして行うのが良い >良いのはわかります。つまり、それがstrdupや、>>351の(1)の場合ですよね。 これ逆だよね。strdupを使うとmallocが見えないのにfreeしなくちゃならない。 strdupは標準関数だからましだけど、func0, func2, func4が返すポインタは freeしてね、とかだとやってられない。 やけにstrdupが「サイズを気にしなくてよい」ことがお気に入りのようだが、あくまでも実引数がCstringである場合だけ。 これは自動変数か、ヒープ領域か、静的変数かには無関係。 str系関数は、終端文字がある前提という制限がある。 呼び出し側が領域を用意する場合は、当然呼び出し側でサイズがわかっているはずなので、 そのときに無駄に領域を用意しなければよいだけでしょ。
|

|