# 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.