私は現在、定期的に、または最適なブロックに追加するカスタム malloc 関数に取り組んでいます。サイズに最も近いブロックを意味します。プログラムの最適な部分に問題があります。これが私が持っているコードです:
私も持っています:
static * First = NULL;
static * Rover = NULL;
したがって、最適な関数には、循環リンクリストを 1 周する do while ループがあります。ユーザーがmallocしようとしているメモリに最適なブロックを見つけることになっています。それを除いて、次の場所で障害をセグメント化します。
if(best->size > Rover->size)
私の論理は理にかなっていると思いますが、なぜセグメント障害が発生するのか理解できません。
関数の冒頭で、次のように宣言するのが最善です。
*best = NULL;
best = Rover;
何かご意見は?