- 622 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/25(水) 01:37:23 ]
- eval_func()は「必ず」ヒープ上に確保した文字列を返す。また、内部的に
使用したメモリはfree()する。 substitute()はeval_func()の返した文字列をfree()する。 また、内部的に確保した文字列はfree()するが、呼び出し側から与えられたものと 戻り値はfree()しない。 : といった類のコンベンションが必要かな。恐らくは。そして誰もがそれに 従わなければならないが、コンパイラによってそれはチェックできないし、 場合によってはメモリリークするだけなので、原因の追究が難しいこともある。 無論C++ならずっとことは楽だし、CでもGCを使うなら随分マシだが。 そして、そこまで頑張ったとしても、malloc()やstrlen()使いまくりのコードで、 大して早くも無いのだろう。
|

|