From: Takashi Nakai Date: 1998-10-14T08:11:30+09:00 Subject: [ruby-list:10075] Re: ruby:struct -> ext module -> ruby ど〜も、中井と申します。 "Kikutani, Makoto" さんは書きました: >きくたにです。またこれなんですが、 > >拡張モジュールの関数で、あるポインタ 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