a dynamic array works much like an unpacked array, but offers the advantage of being dynamically allocated at runtime (as shown above.) whereas a packed array's size must be known at compile time (from a constant or expression of constants), the dynamic array size can be initialized from another runtime variable, allowing the array to be sized and resize arbitrarily as needed.