> -- Rifat писал(а):
> На самом деле нет никакой постановки задачи. Есть только когнитивный диссонанс У меня всегда было представление, что когда точно известно сколько будет элементов, то лучше завести массив или список в статической памяти и уже с ним работать.Динамическую память следует использовать тогда, когда точно не известно сколько будет элементов.При проектировании GUI, чаще всего бывает известно, сколько контролов будет на форме и где они будут располагаться. То есть по идее, лучше бы их разместить статически, а не динамически.
Кстати, я использую "динамику" и в РВ системах. Но - как...
Например, для обобщённых списков.
Иногда я не знаю, сколько действительно элементов (например, "растянутая" по времени обрабатываемая команда) мне понадобится. Но я знаю, что элементы данного типа постоянно появляются и исчезают. Ввожу кэш/пул объектов в каждый такой тип. Дальше функция new/create "лезет" не к менеджеру памяти, а, сначала, в этот пул. Соответственно, освобождения памяти не происходит, а объект возвращается в пул объектов данного типа.
При старте программы, можно просто заранее заполнить пулы определённым количеством неинициализированных объектов.
Кстати и "сборка мусора" происходит путём "прочёсывания" списка всех пулов в системе. С конца списка. Потому, что в начало списка помещаются пулы, к которым происходит наиболее частое обращение.