2 Dynamic memory allocation

Is this a feature, or is this a hack?

Dynamic memory allocation is performed when the memory requirements of a program cannot be determined at compile time. As a result, the program needs to allocate memory as necessary during run-time. In addition, because the allocation of memory may depend on the logic and specific run-time parameters, it is not possible allocate memory in the same pattern in general.

Many programs, such as compilers, cannot determine their memory requirements at compile time. Consequently, dynamically allocated memory is a required feature for most programming languages.