きくたにです。またこれなんですが、
拡張モジュールの関数で、あるポインタ 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関係のみ)