コメント: mallocは関数の中ですべきか

私は関数が返す値を決して関数内でmalloc()しません。なぜなら、受け取った値をfree()すべきかどうか、必ず間違うからです。他の人は知りませんが、私は間違います。賭けてもいい。
例外はクラス内部の変数で、これはconstructorでnewし、destructorでdeleteしています。
今回のケースでは、ベクトル型をC++言語のクラスにするのが一般的な解じゃないかと思います。でも、いつも思うのですが式をきれいにするためにライブラリを根こそぎ書き直すのも無粋ですよね。こういう記述をするためのC++の仕掛けが奇怪だというのも、私が決してこの解を採用しない理由です。

投稿者 酔漢 : April 17, 2007 09:31 AM

>酔漢さん
おっしゃるとおりだと思います。
しかしC++がNGといわれたので、仕方なくCで書いています(笑)。実はCでもBoehmGCという裏技を使えば、安全にメモリをやり取りできるんですが、標準ライブラリ以外は使っちゃダメという諸々の事情があったり…
C++は本当に奥が深い変態言語です。boost::spiritのソースを読むとその真髄が垣間見られるような気がします。

投稿者 fenrir : April 17, 2007 09:46 AM
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。