mruby Advent Calendar 2013 - Qiitaの19日目の記事です。 mrubyでカスタムアロケータを使う mrubyを使うときは、まずmrb_open()を呼ぶわけですが、mrb_open_allocf()という独自のアロケータを指定できる亜種があります。 mrb_state* mrb_open_allocf(mrb_allocf, void *ud); mrb_allocfは次のようにtypedefされています typedef void* (*mrb_allocf) (struct mrb_state *mrb, void*, size_t, void *ud); mrb_allocf()の引数ですが、2番目のvoid *はreallocする場合の元の領域へのポインタ(新しい領域ならNULL), size_tには確保したいサイズ(バイト数。0の場合は解放しろという