Работа памяти для динамических и гетерогенных массивов в современных языках программирования имеет свои особенности:
- Для динамических массивов может использоваться тот же механизм размещения, что и для статических, но с выделением некоторого объёма дополнительной памяти для расширения и добавлением механизмов изменения размера и перемещения содержимого массива в памяти. 1 В некоторых языках (например, JavaScript, Lua) массив может автоматически расширяться при записи в несуществующую ячейку. 3
- Для гетерогенных массивов обычным способом реализации является отдельное хранение самих значений элементов и размещение в блоке памяти массива указателей на эти элементы. 1 Поскольку указатели на значения любых типов, как правило, имеют один и тот же размер, удаётся сохранить простоту вычисления адреса, хотя возникают дополнительные накладные расходы на размещение значений элементов и обращение к ним. 1
- Также динамические и гетерогенные массивы могут реализовываться путём использования принципиально иных методов хранения значений в памяти, например, одно- или двухсвязных списков. 1 Такие реализации могут быть более гибкими, но требуют, как правило, дополнительных накладных расходов. 1