struct myalloc_ud { int max; int cur; }
然后构建一个分配器,它只为每次分配将新大小加到 cur 中,并将旧大小从 cur 中减去(这将起作用,因为新分配的旧大小将为零,而释放的新的大小将为零),如果 cur 超过 max,则返回 NULL。将此分配器和您的用户数据传递给 lua_newstate。
-- SeanLynch