Вам, вероятно, лучше изначально выделять приличное количество места, исходя из того, что вы считаете наиболее вероятным максимумом.
Затем, если вы обнаружите, что вам нужно больше места, не просто выделяйте достаточнодля дополнительного выделите большой дополнительный блок.
Это сведет к минимуму количество перераспределений при одновременной обработке списка только один раз.
В качестве примера, первоначально выделите 100K.Если вы обнаружите, что вам нужно больше, перераспределите на 200 КБ, даже если вам нужен только 101 КБ.