>歯抜けを解消するには確保する前に空場所を探す手間を入れる必要が出てくる

べつに、したらいいじゃないですか

手間が、実行時間の意味でしたら、フリーリストを用意すればよいですし、
そこのコストがあったとしても、配列の方が数値→ポインタの変換が速いのは明白ですし

手間が、コーディングの意味でしたら、そもそも、整数値に置き換えずポインタでいいですし