2011年9月14日のブックマーク (1件)

  • Fenrir's BLog: mallocは関数の中ですべきか

    C言語の行列ライブラリを訳あって書いていました。その中でふと思ったのが、今回の記事の表題にあるとおりで、結果を引数として指定されたポインタを通じて返す関数では、関数内でmallocするべきか否かという宗教じみた話です。 このことは特に、関数が場合によって異なるサイズの配列を返す場合で問題になると思います。 例えば、結果を格納する場所をポインタで引き受け、内部でmallocによって割り当てを行う関数は次のようになります。 void caller_func(){ char input; char *outputs; int number_of_outputs; /* input に対して何か処理 */ callee_func(&input, &outputs, &number_of_outputs); free(outputs); } void callee_func(char *input,

    aggren0x
    aggren0x 2011/09/14