: VALUE Data_Wrap_Struct(VALUE klass, RUBY_DATA_FUNC mark, RUBY_DATA_FUNC free, void *sval)
    C ι¤ sval åפ klass 饹
    󥹥󥹤Ǥ Ruby ֥Ȥ֤ޤ
    markfree Ϥ줾 sval ΥޡѡѤ
    ؿؤΥݥ󥿤Ǥɤ⡢ɬפʤȤϤ 0 Ϥޤ

    ޤ RUBY_DATA_FUNC ϰʲΤ褦Ǥ

        typedef void (*RUBY_DATA_FUNC)(void *st)

     st ˤ sval Ϥޤ

    

        struct mytype {
            int i;
            char *s;
        };

        VALUE
        my_s_new(klass)
            VALUE klass;
        {
            struct mytype *m = malloc(sizeof(struct mytype));
            m->i = 0;
            m->s = 0;
            return Data_Wrap_Struct(MyClass, 0, free_my, m);
        }

