ど〜も、中井と申します。

"Kikutani, Makoto" <kikutani / sprintmail.com> さんは書きました:
>きくたにです。またこれなんですが、
>
>拡張モジュールの関数で、あるポインタ line を
>
>char *line;
>.....
>line = malloc(...);
>.....
>return INT2NUM( (int) line );
>
>で返します。ruby側で
>
>p = hoge(a, b)
>
>なんぞというオブジェクトとして持ってます。
>それをrubyのほうから拡張モジュールの関数に渡してやります。
>拡張モジュールの関数 hage(p) では
>
>q = (char *) NUM2INT(p);
>
>のようにして受けます。このとき、qが最初のlineを指していること
>が保証できるでしょうか?
>ちょっと見ダメそうですが、なぜか今は動いてます。
>すげー機種依存性がある気も。
>
>こんなことをしなくても良い方法を発見せねば。
>
>-- 
>人生を背負い投げ
>
>菊谷 誠(Kikutani Makoto)  kikutani / sprintmail.com
>                          kikutani / debian.or.jp (Linux関係のみ) 
>


素人がでしゃばるところではないのですが、他の人が起きてくるまでの
間に...

ユーザーが malloc() した領域を ruby が勝手に開放(free())するこ
とはないのではないでしょうか。(逆に言うと、ユーザーが責任を持っ
て開放するか、気にしないことにするかする必要があると思います。)

とは言え、私は正確なところは解らないので(<<<だから、でしゃば
るなって)正確なところは、正確な知識を持った人の意見を参考にして
ください(<<<当たり前だって)。

失礼しました。

--
T.NAKAI  nakai / m1.sys.to.casio.co.jp