ToDo:
http://d.hatena.ne.jp/isshiki/20080808/p1
http://risky-safety.org/~zinnia/d/2008/08/#20080809
一般的に標準ライブラリのようなものだと、 間違いなく呼び出し側が正しいんだけど、 一貫しては支持できないあたりいい加減なんだと思う。
理想を言えば C++ 文字列みたいに、 実体はヒープにあるんだけど スタックにあるみたいな扱いができる物体があれば 一番いいんだけど。
C でもやっぱめんどくさくて、 特に小さな物体とかだと平然と malloc した領域を返す 便利関数作っちゃうなぁ。 確かにそういう関数はメモリリークを 起こしやすいんだけど、 一方サイズ指定系の API はバッファ破壊系の バグを起こしやすくて、 昔は逆だったと思うんだけど、 現在の PC 環境では、 前者のバグの方がはるかに発見しやすいように感じる。
リークなんて多少気をつけてても、する時はするわけで、 とりあえずヒープチェッカはかけるからなぁ。
PC 的な環境だと malloc/free が十分速くて、 速度的な問題にはあんまりならない的な話も。
ただ free 以外の解放関数が必要な可能性があると確かにうっとうしいなぁ。 あとデバッグビルドリリースビルド的な問題があるので、 まぁやはりライブラリでは最低限 malloc した領域返す API があるなら その領域を解放する API を用意しにゃならんとかいう話はあると思う。
まとめてないけどざっと
あたりの条件がそろえば内部確保でもいいんじゃないかなぁ。
(11:24)
前 | 2008年 8月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。