Преимущества динамического распределения памяти при работе с массивами:
- Сокращение объёма памяти, необходимого для работы программы. 5
- Отсутствие необходимости объявлять данные как данные фиксированного размера. 5
- Более эффективная реализация некоторых алгоритмов. 5 Например, вставка элемента в статический массив на определённое место требует перемещения части элементов массива, а при вставке в середину динамического списка достаточно несколько операторов присваивания. 5
Недостатки динамического распределения памяти при работе с массивами:
- Более сложная и трудная для отладки алгоритмика по сравнению с аналогичной для статических данных. 5
- Затраты на память для ссылок. 5 В некоторых задачах объём памяти, отводимой для ссылок, превосходит объём памяти, выделяемой непосредственно для данных. 5
- Страдание производительности программы. 2 Добавление новых элементов требует выделения нового участка памяти, копирования элементов из старого массива, освобождения старого участка памяти. 2