あらかたバグを直して正常に動作するようになったので定数の変数などを削除してリミックス 使うときはtlsf*から始まる関数を使わないように注意。 こいつをバックパックとかに入れて使ってくだせぇ。 クレジットとかしてくれると喜ぶよ。 速度は私のPCだと6000(malloc+free)/s 関数: tlsf:malloc 指定したサイズの連続した要素を確保し、初めのインデックスをtlsf:returnに返す。メモリプールが足りなくなったら自動的にexpandされるので手動でexpandする必要はなし。メモリプールがこれ以上拡大できず要素を確保できない場合は0を返す。 tlsf:free 指定したインデックスを解放する。二重解放の対策はしていないので注意。 tlsf:init fl:最大のメモリプールの大きさ。2^xなので20万要素を最大にしたければ18にすると良い。 sl:空き領域をどのくらい細かく管理するか。2^xなので3とかでいんじゃね。 offset:offset以下のサイズのmallocはtwo levelで管理されない。とりあえずfl>offset>=slにしとけばおk。 pool:メモリプールの初期サイズ。flより小さくする必要がある。 tlsf:expand ヒープ領域をsizeの分だけ拡張する。多分使うことはない。失敗するとtlsf:return=1を返す 追記:2026/05/20 malloc時にヘッダーのサイズを含めずに空き領域の検索をしていたバグを修正