ど〜も、中井と申します。 "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