トップ «前の日記(2008-08-10) 最新 次の日記(2008-08-13)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2008-08-12

_ めもりかくほ

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)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

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
1.星一(2014-05-24 01:41) 2.なかむら(う)(2014-05-24 01:41) 3.星一(2014-05-24 01:41)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h