# DIMX vs DIM
> [HTML Version](dimxvsdim.htm)
DIMX is an enhanced version of the venerable DIM statement used to allocate an array at runtime. The enhancements of DIMX over DIM are:
• It accepts optional type and size specifiers rather than being limited to F6 and string with size determined by [STRSIZ](strsiz.htm.md).
• The element size is evaluated at runtime, whereas with DIM, it is evaluated at compile time.
• It allocates the memory needed out of the system memory pool, rather than from the user partition. Memory used by DIMX is automatically released when the program ends.
• If the [AUTO\_EXTEND](dynamic_arrays_(dimx).htm.md) option is specified, the first dimension (first subscript) of the array will be automatically extended as needed whenever an assignment is made to the array.
• The AUTO\_EXTEND feature is only activated for explicit assignments like those shown above; it is not normally activated for ambiguous or implicit assignments, such as when array elements are passed as parameters.